深入理解Android笔记
文章平均质量分 67
ljtyzhr
在程序员的世界里遨游。
展开
-
深入理解Android(01)——Android系统的全面介绍
1、系统架构 android系统一共分为四个层次,主要包括applications,framework,libraries,linux内核层。Android系统架构图示:Linux内核层:主要是linux的内核与一些驱动模块,比如蓝牙驱动,照相机驱动,usb驱动,wifi驱动等。Libraries:这一层主要是动态库、Android运行时候的库、Dalvik虚原创 2015-01-15 10:45:41 · 872 阅读 · 0 评论 -
深入理解Android(10)——Android中的Thread与线程类解析
1、混淆打包使用了Gson之后,打包混淆会出现问题,这里需要指定不混淆1.1 关注两个问题1)实体类是否进行了序列化,不然反序列化就容易出现问题2)是否使用了泛型?比如集合1.2 自定义防止混淆-keepattributes Signature-dontwarn com.123.**-keep class com.123.entity.** { *;}原创 2015-02-13 23:42:11 · 687 阅读 · 0 评论 -
深入理解Android(08)——深入理解zygote的分裂原理
1、AvtivityManagerServiceAvtivityManagerService也是由SystemServer创造的。我们看看ActivityManagerService中的startProcessLocked函数,代码如下所示: private final void startProcessLocked(ProcessRecord app, St原创 2015-02-05 09:24:54 · 879 阅读 · 0 评论 -
深入理解Android(07)——深入理解SystemServer
1、背景知识SystemServer的进程名实际上叫做“system_server”,这里我们可以将其简称为SS,SS作为zygote的重要分支,是非常重要的一部分。2、SystemServer诞生3、SystemServer用来干嘛4、真实的SystemServer5、SystemServer的总结原创 2015-02-04 23:25:47 · 665 阅读 · 0 评论 -
深入理解Android(05)——深入理解zygote
1、概述Android系统运行这两个完全不同的世界1)Java世界,Google提供的SDK主要就是针对这个世界的。在这里运行的程序都是基于Dalvik虚拟机的Java程序。2)Native世界,也就是用Native语言C或者C++开发的程序,他们组成了Native世界。zygote中文名为“受精卵”,它和Android系统中的Java世界有着重要的关系。2、zygot原创 2015-02-01 23:20:57 · 679 阅读 · 0 评论 -
深入理解Android(06)——Java世界的入口ZygoteInit
1、ZygoteInit源码CallStaticVoidMethod最终将调用com.android.internal.os.ZygoteInit的main函数,这里是函数代码,如下所示:base/core/java/com/android/internal/os/ZygoteInit.java public static void main(String argv[]) {原创 2015-02-03 23:55:13 · 1654 阅读 · 0 评论 -
深入理解Android(02)——深入理解JNI与应用
1、JNI概述JNI(Java Native Interface)Java本地调用接口。JNI主要实现两个目标:(1)Java程序中的函数,可以调用native编写的函数方法,一般是指C或者C++语言写的代码(2)Native中的函数可以调用Java中的方法和函数JNI主要解决两个问题:(1)解决了Java的平台无关性,这一点是通过底层的Native代码来实现的(2)Jav原创 2015-01-17 16:12:51 · 683 阅读 · 0 评论 -
深入理解Android(04)——深入理解属性服务
1、属性服务 在windows中,有一个名为注册表一样的东西,注册表可以存储类似key/value这样的键值对。 一般来说,系统或者某些应用程序会把自己的一些属性存储在注册表中,即使系统重启或者应用程序重启,它还是能够根据之前在注册表中设置的属性,进行相应的初始化操作。Android平台也提供了一个类似的机制,称之为属性服务(property service)。原创 2015-01-29 22:17:21 · 1236 阅读 · 1 评论 -
深入理解Android(03)——深入理解init初始化函数
1、Android中的属性服务原创 2015-01-20 20:33:37 · 1064 阅读 · 0 评论 -
深入理解Android(09)——深入理解RefBase、SP和WP
1、背景概述RefBase是Android中所有对象的始祖,类似于MFC中的CObject或者Java中的Object对象。2、影子对象文件的位置为:framework/base/libs/utils/RefBase.cppRefBase::RefBase() : mRefs(new weakref_impl(this)){// mRefs是RefBase的原创 2015-02-09 14:23:39 · 625 阅读 · 0 评论