您的位置:首页 > 移动开发 > Android开发

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

2013-09-11 16:01 204 查看
转载请注明原作者:@author:huanglei_jmr http://blog.sina.com.cn/u/3113060227

正式开发!!!

一些背景知识:

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

Dx工具将

.class转为dex文件可运行!!

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

Google提供的上网是webkit

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

4:当点击run
as android application时候:过程

.java---à.
Class—dx工具

--àdex----------à打包(签名:软件开发者所有,在导出apk的时候出现的keystore就是签名了)-------》apk----》

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

创建进程à创建主线程---》在主线程中实例化

mainactivity
(反射)
----》操作系统会把应用有缘的信息context放activity中,然后调用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);//日期中级组件

强烈注意:性能优化[/i][/b]onCreate这个方法只会执行一次,所很多查找方法(当然还有业务层对象的创建也放在此,在类中声明成员变量)都写在这里面,避免每次切换到activity的时候都查找,相当耗时,在类中定义成变private EditText mobleText;在oncreate查找
mobleText=(EditText)findViewById(R.id.edittxt);这样就可以再类中任何位置使用
5:在android中大量使用内部类,如果像java那样将类都写成一个个的文件,在加载类的字节码是很耗时的,这能提高性能,虽然代码阅读性会差。

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

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

清单文件很重要,在清单文件中加:注意加的位置targetPackage貌似是随便写的还是!!
targetPackage不是随便写的,而是你要对哪个应用进行单元测试就写哪个包,在android中应用都是以包的形式进行分布的(即每个包中的activity就相当于一个应用啦!所以每个应用包名不能相同,见下manifest的package就是应用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 my
app"
/>

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

出示电话的权限证书
</</SPAN>application>

<</SPAN>uses-permission
android: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文件时候比如说这个软件会使用到拨号功能


今天讲到这嘿嘿
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: