Android reviews —— Activity

Android reviews —— Activity(上)

一、前言

     Android是一个组件概念的系统,它弱化了进程的概念,对用户看来,组件和组件之间的调用,似乎都在同一个进程下完成。但孰不知,所有组件通信几乎都被Binder这个Android跨进程机制进行了封装,整个Android系统都严格遵照着C/S架构良好的运行着——Client就是大部分的应用程序,而Server就是ActivityManagerService、WindowManagerService这样的东西。Client与Client之间的通信,都需要经过Server的同意才能够进行,Server掌握了Client的创建、活动、和销毁。对于这样一个系统,似乎一直都是当前系统架构的主流,管理集中、局部化封闭、执行效率低下、代码编写难度大就是此类系统的特点,而作为一个资历尚浅的代码民工,我很难评价这种系统的合理性,我只能遵照Android制定的游戏规则,来玩这场游戏。

     而在Android中,Activity是个什么东西呢?它被google称为android四大组件中最重要的组件(Activity、Service、BroadcastReceiver、ContentProvider),它又有怎么样的特性呢?而Activity 又被google定义为前台UI组件,最主要的任务就是显示UI,拿为什么Activity能显示UI,而其它组件不可以呢?接下来,我会把我一年以来的积累进行一次总结,疏漏和错误在所难免,而此该系列的定义也非什么教程,也仅仅是一次总结和分享,还望大家侃侃而谈。

二、Android应用从开发到运行

     每一个Android应用程序,对我们开发者,流程都是这样的:编码-->打包-->安装-->运行。如果,我以一个最简单的helloworld来举例,在eclipse新建这个工程到在设备上运行起这个应用,总共所花的时间不会超过30秒,这30秒时间里面,到底发生了什么?

   (1)打包

    这是一张从网上流传下来的图,它已经能非常明确的告诉大家,整个apk创建的流程到底如何

    在图中,黄色的部分,是开发者所需要提供的,绿色部分是命令执行的动作,蓝色部分就是命令执行之后生成的文件。(其中javac和dx之间少了jar包生成的过程,但是不妨碍理解)

    aapt:Android Asset Packaging Tool,即Android资源打包工具,它会生成R文件和资源包resources.resc。Android提供的。

    一点冷门小分享:在源码的资源文件中,会出现如下类型的资源 ,aapt会根据当前编译环境中ro.build.product的值,来决定使用哪一个字符串,而不会将这两种形式字符串都生成.R文件和资源文件。

?
< string = "xxx" product = "nosdcard" >xxx</ string >
< string = "xxx" product = "default" >xxx</ string >

  javac:Java语言编程编译器,它会将所有.java文件编译成.class文件。JDK提供的。

    dx:dex包生成工具,它会把所有的的.jar文件重新编码成dex文件。Android提供的。

    apkbuilder:apk打包工具,它会把资源和dex文件打包成apk工具。Android提供的。

    jarsigner:签名工具,负责用指定的证书给apk进行签名。Android提供的。

   (2)安装

    Android中的应用程序实质上是以包存在的(包含了dex和资源),与包的安装和卸载相关的主要有两个部分,包管家——PackageManagerService和包数据——/data/system/packages.xml。大致的安装流程如下图,   

    卸载过程正好相反,就不再赘述了。

   (3)运行   

    实际的运行情况比上面的图所示的要复杂的多,上面只是以一个典型情况来说明,更深入的可以看http://blog.csdn.net/column/details/androidluo.html的内容。对于我们应用开发者来说,只需要知道,Android弱化了进程的概念,强调组件的概念,而我们的Activity实质是运行在某个进程里面的,这个进程会继承linux进程的特性,它拥有怎么样的访问权限就足够了。

 

www.qihang418.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值