用代码教你入门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文件时候比如说这个软件会使用到拨号功能
今天讲到这嘿嘿
正式开发!!!
一些背景知识:
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文件时候比如说这个软件会使用到拨号功能
今天讲到这嘿嘿
相关文章推荐
- 用代码教你入门android--2&nbsp;布…
- Maven 3 入门 -- 安装与配置
- Android&nbsp;JNI开发入门之一
- Maven 3 入门 -- 安装与配置
- Android&nbsp;JNI开发入门之一
- Android&nbsp;混淆代码学习以及And…
- Android&nbsp;JNI开发入门之二
- Android&nbsp;JNI开发入门之二
- android&nbsp;NDK&nbsp;学习&nbsp;入门
- 【Android学习入门】Android …
- Android 混淆代码学习以及And… 分类: Android开发 2014-05-30 10:55 95人阅读 评论(0) 收藏
- Android&nbsp;NDK学习之环境配置入门二
- android&nbsp;pad开发&nbsp;基础入门之一
- (转)Android基础入门教程——1.10 反编译APK获取代码&资源
- Android&nbsp;JNI环境搭建及开发入门
- 图书管理系统代码&nbsp;&nbsp;3&nbsp;LibraryMainF…
- android&nbsp;访问授权代码位置
- Android基础入门教程——1.10 反编译APK获取代码&资源
- Android笔记1 Android入门
- android&nbsp;项目编码修改,&amp;nbsp…