标签:android目录结构
一。安卓系统的四层架构
第一层:Applications:这里是手机上系统的应用或者是第三方应用
第二层:Application Framework:这里是java相关的api部分
第三层:包括两个平行的部分
1.类库:liberties
2.Android Runtime:DVM(安卓虚拟机)
最底层:Linux 内核
二。DVM和JVM的区别
DVM:.java-->.class-->.dex-->.apk
JVM: .java-->.class-->.jar
三。Android新虚拟机:
1.ART:第一次安装应用时,字节码会先编译成机器码使其成为真正的本地应用,
当再次启动时,执行速度会提升。
2.Dalvk(旧):每次运行应用,都要重新编译成字节码,执行速度比较慢。
四。Android项目目录结构
* Activity:应用被打开时显示的界面
* src:项目代码
* R.java:项目中所有资源文件的资源id
* Android.jar:Android的jar包,导入此包方可使用Android的api
* libs:导入第三方jar包
* assets:存放资源文件,比方说mp3、视频文件,通过IO流进行读取
* bin:存放编译打包后的文件
* res:存放资源文件,存放在此文件夹下的所有资源文件都会生成资源id
* drawable:存放图片资源
* layout:存放布局文件,把布局文件通过资源id指定给activity,
界面就会显示出该布局文件定义的布局
* menu:定义菜单的样式
###Android的配置文件(清单文件)
* 指定应用的包名
package="com.itheima.helloworld"
* data/data/com.itheima.helloworld(上面代码指定的包名)
* 应用生成的文件都会存放在此路径下
* Android的四大组件在使用前全部需要在清单文件中配置
* <Application/>的配置对整个应用生效
* <activity/>的配置对该activity生效
应用打包的过程:
.java-->.dex、.apk-->sign-->安装
ADB:安卓调试桥,建立eclipse和Android设备之间的桥梁
常用的一些adb命令:
* adb start-server:启动adb进程
* adb kill-server:杀死adb进程
* adb devices:查看当前与开发环境连接的设备,此命令也可以启动adb进程
* adb install XXX.apk:往模拟器安装apk
* adb uninstall 包名:删除模拟器中的应用
* adb shell:进入linux命令行
* ps:查看运行进程
* ls:查看当前目录下的文件结构
* netstat -ano:查看占用端口的进程
五。简单应用
1.电话拨号器:
重要的一些代码在MainActivity.java中编辑的,注意要在清单中设置权限允许:
<uses-permission android:name="android.permission.CALL_PHONE"/>
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Log.d("THE FIRST ONE", "heheheheheheh"); Button bt=(Button)findViewById(R.id.button1); bt.setOnClickListener(new MyClick()); } class MyClick implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub EditText et=(EditText)findViewById(R.id.editText1); String val=et.getText().toString(); Intent intent=new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:"+val)); startActivity(intent); } }
2.点击事件的几种方式:
###第一种
* 定义一个MyListener实现onClickListener接口
Button bt1 = (Button) findViewById(R.id.bt1); bt1.setOnClickListener(new MyListener());
###第二种
* 定义一个匿名内部类实现onClickListener接口
Button bt2 = (Button) findViewById(R.id.bt2); bt2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { System.out.println("第二种"); } });
###第三种
* 让当前activity实现onClickListener接口
Button bt3 = (Button) findViewById(R.id.bt3); bt3.setOnClickListener(this);
###第四种
* 给Button节点设置onClick属性,
android:onClick="click"
* 然后在activity中定义跟该属性值同名的方法
public void click(View v){ System.out.println("第四种"); }
3.短信发送器
这个简单例子主要用到点击事件的第四种方式,同样不要忘记添加权限:
<uses-permission android:name="android.permission.SEND_SMS"/>具体代码如下:
public void send(View v){ //拿到用户输入的号码和内容 EditText et_phone = (EditText) findViewById(R.id.et_phone); EditText et_content = (EditText) findViewById(R.id.et_content); String phone = et_phone.getText().toString(); String content = et_content.getText().toString(); //1.获取短信管理器 SmsManager sm = SmsManager.getDefault(); //2.切割短信,把长短信分成若干个小短信 ArrayList<String> smss = sm.divideMessage(content); //3.for循环把集合中所有短信全部发出去 for (String string : smss) { sm.sendTextMessage(phone, null, string, null, null); } }
标签:android目录结构
原文地址:http://flytheworld.blog.51cto.com/3623271/1672695