首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

【幻灯片分享】Android程序的编译,装配和运行 | 小米科技 汪文俊 | Android DevCamp

2012-08-24 
【幻灯片分享】Android程序的编译,安装和运行 | 小米科技 汪文俊 | Android DevCamp安卓系统架构多年经验总

【幻灯片分享】Android程序的编译,安装和运行 | 小米科技 汪文俊 | Android DevCamp

安卓系统架构多年经验总结:《Android程序的编译,安装和运行》 | Android DevCamp

话题简介:Android程序的编译,安装和运行。从程序员的观点探索Android系统提供的编程抽象,从程序的整个生命周期讨论一下Android系统结构。

讲师简介:汪文俊,中国科技大学硕士,原IBM系统工程师,现为小米科技MIUI首席架构师,开源C编译器项目ucc的作者。 


【幻灯片在线观看】*:

Android程序的编译,安装和运行 | 小米科技 汪文俊 from Shining @DevCamp

备注:* 因为炫姐姐对SlideShare这一平台的偏爱,尽管需要使点小技巧才能上传分享,但是炫姐姐还是坚持选择了这一功能强大却简洁好用的平台。一来对国外这些开发出优秀的工具和平台、造福于互联网和人类的团队表示致敬,二来则是对国内对于这些优秀的工具和平台的限制表示一下立场。读者如果不能正常浏览,那么需要像炫姐姐一样用点小技巧。而对于那些还是不知道炫姐姐在说什么的小白读者,可以移步到这里查询原因。


【幻灯片下载页面】: Android DevCamp幻灯片下载:Android程序的编译,安装和运行 | 小米科技 汪文俊 -来自CSDN下载频道(不需要积分,自由下载)


【幻灯片内容刚要】:
  • 1. Android DevCampProduced  by  CSDN    
  • 2. Android系统剖析                          汪文俊   
  • 3. 议程2?? Android程序结构  2?? Android系统结构  2?? Android系统和程序设计  
  • 4. 第?一部分Android程序结构
  • 5. HelloWorld2?? AndroidManifest.xml  2?? res/   ®?? layout/hello_world.xml   ®?? values/strings.xml  2?? src/   ®?? com/example/android/HelloWorld.java    
  • 6. HelloWorld.javapackage  com.example.android;    import  com.example.android.R;  import  android.app.Activity;  import  android.os.Bundle;    public  class  HelloWorld  extends  Activity  {    protected  void  onCreate(Bundle  state)  {      super.onCreate(state);      setContentView(R.layout.hello_world);    }  }  
  • 7. 资源layout/hello_world.xml  <EditText          xmlns:android=“http://schema.android.com/apk/res/android”          android:layout_width=“match_parent”          android:layout_height=“match_parent”          android:textSize=“18sp”          android:text=“@string/hello_world”  />    values/strings.xml  <string    android:name=“hello_world”>Hello,World</string>  
  • 8. AndroidManifest<manifest          xmlns:android=“http://schema.android.com/apk/res/android”          package=“com.example.android”>          <application  android:label=“HelloWorld”>                  <activity  android:name=“HelloWorld”>                          <intent--‐_ilter>                                  <action  android:name=“android.intent.action.MAIN”  />                                  <category     android:name=“android.intent.category.LAUNCHER”  />                          </intent--‐_ilter>                </activity>          </application>  </manifest>  
  • 9. res/* src/* R.java aapt javac AIDL classes java class ?les dx JARs res/* aaptclasses.dex aapt resources.arsc apk signapk signed apk zipalign ?nal apk
  • 10. 资源编译2?? R.layout.hello_world(0x7f010001)   3?? package  id:  7f   3?? resource  type:  01   3?? resource  id:  0001    2?? resources.arsc(资源查找表)  
  • 11. item 1 item 2 con?g 1 … con?g 2 layout item N … drawablepackage con?g N … strings res/layout/hello_world.xml res/drawable-hdpi/icon.png …
  • 12. 视图2?? 树形结构   3?? View  (TextView,  Button,  …)   3?? ViewGroup(FrameLayout,  LinearLayout,  …)  2?? setContentView(R.layout.hello_world)  2?? 解析XML,利用反射构造视图结构  
  • 13. 程序安装2?? installPackage(“HelloActivity.apk”)  2?? 解析AndroidManifest.xml   3?? Activity   3?? BroadcastReceiver   3?? Service   3?? ContentProvider  2?? /data/system/packages.xml  
  • 14. 程序运行Intent  intent  =  new  Intent(“com.example.android”,          “com.example.android.HelloWorld”);  context.startActivity(intent);  
  • 15. 第二部分Android系统结构
  • 16. 体系结构 应用 Android系统框架 Java核心运行时库 dalvik虚拟机 JNI库 本地运行时库 硬件抽象层  Linux内核
  • 17. Android手机分区 cache data system boot modem bootloader
  • 18. 系统启动2?? 系统上电加载内核  2?? 内核启动  2?? 首进程init  
  • 19. 启动脚本init.rcservice  adbd  /sbin/adbd   user  adb   group  adb    service  servicemanager  /system/bin/servicemanager    user  system      onrestart  restart  zygote      onrestart  restart  media    service  zygote  /system/bin/app_process  --‐Xzygote  /system/bin  --‐--‐zygote   socket  zygote  6678  
  • 20. Zygote Zygotedalvik vm
  • 21. System Server Zygote System Server Activity Manager fork Package Manager …dalvik vm dalvik vm
  • 22. Home Zygote System Home Server Activity Activity Manager Thread fork Package Manager … dalvik vm dalvik vm dalvik vm fork
  • 23. 进程间通信2?? 信号  2?? 管道,命名管道  2?? 共享内存  2?? socket  2?? RPC(COM,  CORBA)  2?? OpenBinder  
  • 24. BinderProcess A Process B Parcel Parcel marshal unmarshal Binder Driver
  • 25. BinderProcess A Service 注册 Process B Manager 查询 返回 Parcel Parcel marshal unmarshal Binder Driver
  • 26. HelloWorld Zygote System Home HelloWorld Server Activity Activity Activity Manager Thread Thread fork Package startActivity Manager …dalvik vm dalvik vm dalvik vm dalvik vm fork
  • 27. 第三部分Android系统和程序设计
  • 28. 系统设计2?? 层次结构  2?? 安全  2?? 围绕Intent的组件通信   ??? 缺乏组件共享机制    2?? 基于生命期的管理   ??? 超时异步,ANR    2?? 广播机制   ??? 泛滥的广播侦听    2?? Java   ??? 垃圾回收  
  • 29. 程序设计2?? 不要阻塞主线程   ??? Thread  ,  AsyncTask    2?? 消息循环   ??? Handler,  HandlerThread    2?? Service   ??? 多任务   ??? ACTION_BOOT_COMPLETED   ??? AlarmManager   ??? WakeLock 

热点排行