`
mmdev
  • 浏览: 12952164 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

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

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


【幻灯片在线观看】*:

<iframe src="http://www.slideshare.net/slideshow/embed_code/13839396" width="597" height="486" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen=""> </iframe>

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


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


【幻灯片内容刚要】:

  • 1. Android DevCampProduced by CSDN
  • 2. Android系统剖析 汪文俊
  • 3. 议程²  Android程序结构 ²  Android系统结构 ²  Android系统和程序设计
  • 4. 第⼀一部分Android程序结构
  • 5. HelloWorld²  AndroidManifest.xml ²  res/ ®  layout/hello_world.xml ®  values/strings.xml ²  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 files  dx  JARs  res/*  aapt classes.dex  aapt  resources.arsc  apk  signapk  signed apk  zipalign  final apk 
  • 10. 资源编译²  R.layout.hello_world(0x7f010001) ³  package id: 7f ³  resource type: 01 ³  resource id: 0001 ²  resources.arsc(资源查找表)
  • 11. item 1  item 2  config 1  …  config 2  layout  item N  …  drawable package  config N  …  strings  res/layout/hello_world.xml  res/drawable-hdpi/icon.png  … 
  • 12. 视图²  树形结构 ³  View (TextView, Button, …) ³  ViewGroup(FrameLayout, LinearLayout, …) ²  setContentView(R.layout.hello_world) ²  解析XML,利用反射构造视图结构
  • 13. 程序安装²  installPackage(“HelloActivity.apk”) ²  解析AndroidManifest.xml ³  Activity ³  BroadcastReceiver ³  Service ³  ContentProvider ²  /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. 系统启动²  系统上电加载内核 ²  内核启动 ²  首进程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 Zygote dalvik 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. 进程间通信²  信号 ²  管道,命名管道 ²  共享内存 ²  socket ²  RPC(COM, CORBA) ²  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. 系统设计²  层次结构 ²  安全 ²  围绕Intent的组件通信 Ø  缺乏组件共享机制 ²  基于生命期的管理 Ø  超时异步,ANR ²  广播机制 Ø  泛滥的广播侦听 ²  Java Ø  垃圾回收
  • 29. 程序设计²  不要阻塞主线程 Ø  Thread , AsyncTask ²  消息循环 Ø  Handler, HandlerThread ²  Service Ø  多任务 Ø  ACTION_BOOT_COMPLETED Ø  AlarmManager Ø  WakeLock

分享到:
评论

相关推荐

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

    安卓系统架构多年经验总结:《Android程序的编译,安装和运行》 | Android DevCamp 讲师简介:汪文俊,中国科技大学硕士,原IBM系统工程师,现为小米科技MIUI首席架构师,开源C编译器项目ucc的作者。 话题简介:...

    汪文俊:Android程序的编译,安装和运行

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

    源代码-ajax即时聊天程序(新手学习推荐).zip

    源代码-ajax即时聊天程序(新手学习推荐).zip

    python读取excel数据.doc

    以下是一个简单的Python代码,用于在控制台上打印一个看起来像爱心的形状。这个代码使用了ASCII字符来创建形状。 python print('\n'.join([''.join([('Love'[(x-y)%4] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(15, -15, -1)])) 这个代码使用了数学公式来生成心形。但是,由于ASCII字符的限制,这个心形可能看起来不是很完美。 如果你想要一个更详细和定制化的心形,你可能需要使用图形库,如PIL(Python Imaging Library)或matplotlib。但是,这些库通常用于创建图像文件或在图形用户界面上绘制,而不是在控制台上打印。 另外,这里有一个使用turtle模块在图形窗口中绘制爱心的简单示例: python import turtle # 创建一个新的turtle对象 heart = turtle.Turtl

    【图像评价】图像去雾质量评价【含Matlab源码 066期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    30客户满意度调查表.DOC

    30客户满意度调查表.DOC

    labelme, 一个用于图像标记的工具

    使用python3以上版本

    cn-msdn-library-for-visual-studio-2008-service-pack-1-x86-dvd-x1

    cn_msdn_library_for_visual_studio_2008_service_pack_1_x86_dvd_x1.iso 分卷3

    变更申请单.xls

    变更申请单.xls

    【路缝识别】 GUI形态学路缝识别(带面板)【含Matlab源码 1649期】.zip

    【路缝识别】 GUI形态学路缝识别(带面板)【含Matlab源码 1649期】

    判断回文素数的C语言程序

    附件是判断回文素数的C语言程序,文件绿色安全,请大家放心下载,仅供交流学习使用,无任何商业目的! 程序首先定义了两个函数:isPrime 用于判断一个数是否为素数,isPalindrome 用于判断一个数是否为回文。然后在 main 函数中,通过一个循环来检查从2到999(这里假设我们只需要检查小于1000的数)的所有数,如果一个数既是素数又是回文数,就将其打印出来。

    Modbus Poll version 10.9.0 Build 2194

    Modbus Poll version 10.9.0 Build 2194,modbus 主机,包含 32位与64位,非常好用的 modbus 协议主机调试工具

    【表盘识别】 GUI二值化指针式表盘识别【含Matlab源码 275期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    读书屋测试项目,里面涵盖有自动化测试用例以及手工测试用例 此项目主要针对自动化项目用例

    此文档是读书屋的自动化测试用例,

    17产品标识和可追溯性控制程序.doc

    17产品标识和可追溯性控制程序.doc

    【图像融合】形态学分析和稀疏表征CSMCA图像融合【含Matlab源码 4130期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    源代码-ApiAdmin后台管理系统 基于ThinkPHP.zip

    源代码-ApiAdmin后台管理系统 基于ThinkPHP.zip

    【图像隐写】 DCT数字水印嵌入+攻击+提取【含Matlab源码 1758期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    【图像加密】 Logistic混沌+Arnold置乱图像加密解密【含Matlab源码 1281期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    【图像评价】 GUI图像客观评价【含Matlab源码 855期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

Global site tag (gtag.js) - Google Analytics