用代码教你入门android--3 正…

来源:互联网 发布:c语言数组实验报告 编辑:程序博客网 时间:2024/05/22 13:09

转载请注明原作者:@author:huanglei_jmr http://blog.sina.com.cn/u/3113060227

正式开发!!!

一些背景知识:

1Androidruntime  不是前段时间和sun打官司的,不能直接运行.class文件,而是dex文件

Dx工具将.class转为dex文件可运行!!

2:原来的wap上网只可以打开wml页面的网页

Google提供的上网是webkit

3: mainfest.xml文件,是在软件呗安装的时候进行读取的,相当于虚拟注册表为软件进行登记

4:当点击runas android application时候:过程

.java---à.Class—dx工具--àdex----------à打包(签名:软件开发者所有,在导出apk的时候出现的keystore就是签名了)-------apk----

安装 adb install d:\...\xxx.apk

创建进程à创建主线程---》在主线程中实例化mainactivity (反射) ----》操作系统会把应用有缘的信息contextactivity中,然后调用oncreate方法

public class MainActivity extends Activity {

 

   @Override

   protected void onCreate(Bundle savedInstanceState){

      super.onCreate(savedInstanceState);

      //setContentView(R.layout.activity_main);//设置布局方式,可以写为自己的super.setContentView(R.layout.middlelayout);//日期中级组件

强烈注意:性能优化onCreate这个方法只会执行一次,所很多查找方法(当然还有业务层对象的创建也放在此,在类中声明成员变量)都写在这里面,避免每次切换到activity的时候都查找,相当耗时,在类中定义成变private EditText mobleText;oncreate查找

mobleText=(EditText)findViewById(R.id.edittxt);这样就可以再类中任何位置使用

5:在android中大量使用内部类,如果像java那样将类都写成一个个的文件,在加载类的字节码是很耗时的,这能提高性能,虽然代码阅读性会差。

6:状态栏通知(广播等);对话框通知(需要确定消除)toast通知(与对话框相似,但是没有框,短暂显示慢慢消失)

7:怎样在android中测试代码:

清单文件很重要,在清单文件中加:注意加的位置targetPackage貌似是随便写的还是!!

targetPackage不是随便写的,而是你要对哪个应用进行单元测试就写哪个包,在android中应用都是以包的形式进行分布的(即每个包中的activity就相当于一个应用啦!所以每个应用包名不能相同,见下manifestpackage就是应用id)

<</SPAN>manifest xmlns:android="http://schemas.android.com/apk/res/android"

   package="com.example.androidfile"

   android:versionCode="1"

   android:versionName="1.0" >

  </</SPAN>activity>

       <</SPAN>uses-library android:name="android.test.runner"/>

   </</SPAN>application>

   <</SPAN>instrumentation android:name="android.test.InstrumentationTestRunner"

       android:targetPackage="cn.huanglei_jmr.test" android:label="test myapp"/>

8:在清单文件中出示权限证书

出示电话的权限证书

</</SPAN>application>

   <</SPAN>uses-permissionandroid:name="android.permission.CALL_PHONE"/>

</</SPAN>manifest>

权限证书是啥意思,在清单文件的intentfilter

<</SPAN>intent-filter>

     <</SPAN>action android:name="android.intent.action.MAIN"/>

 

      <</SPAN>category android:name="android.intent.category.LAUNCHER"/>

</</SPAN>intent-filter>

如果我们自己开发的app要使用别人的app功能(比如我开发一个app要使用打电话功能)则必须匹配这个intent-filter。权限证书就是写在这里面的!我这上面没写,怎样匹配:

//匹配intentfilter(在清单文件中),激活电话拨号器

          Intent intent=new Intent();

          //查看电话拨号器源码,知道怎么匹配

          intent.setAction("android.intent.action.CALL");

          //intent.addCategory("android.intent.category.DEFAULT");

          intent.setData(Uri.parse("tel:"+number));//过滤器源码规定uri必须以tel:开头

          System.out.println(intent.getData());

          startActivity(intent);//方法内部会自动为Intent添加DEFAULT类别,所以上面的catagory不需要写

          //还需要在本apk中出示在电话拨号器中设置的权限android.permission.CALL_PHON

          //我们这里出示就可以

      //在安装的时候会出现信息提示(run不会提示),类似我在安装apk文件时候比如说这个软件会使用到拨号功能

 

今天讲到这嘿嘿

原创粉丝点击