自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (7)
  • 收藏
  • 关注

原创 Android6.0 PackageManagerService dex优化

一、代码Android6.0 PackageManagerService dex优化是在scanPackageDirtyLI函数中,代码如下: if ((scanFlags & SCAN_NO_DEX) == 0) { int result = mPackageDexOptimizer.performDexOpt(pkg, null /* in

2016-11-29 16:14:10 2685 1

原创 Android6.0 PackageManagerService 安装lib

之前在PKMS预装三方应用时,放在system/third_app下面扫描出现了很多错,原因就是对安装lib和oat文件不熟悉。这篇博客就分析下这两项。一、安装lib库安装lib库代码,主要代码都在scanPackageDirtyLI函数中,先是调用了derivePackageAbi,这个函数中就把lib库的路径创建好了,也把lib库copy到这个目录下,然后后面会调用Instal

2016-11-28 15:27:51 2060

原创 博客进5000名了

博客进5000名了,mark下

2016-11-22 08:59:06 675 1

原创 Android6.0 PackageManagerService卸载应用

PKMS中卸载应用是通过deletePackage函数来执行,这个函数主要是调用了一些Observer回调,然后调用了deletePackageX函数。 public void deletePackage(final String packageName, final IPackageDeleteObserver2 observer, final int user

2016-11-21 17:05:46 3584

原创 Android6.0 PackageManagerService的mSettings、mPackages变量分析

这篇博客我们来分析下mSettings核mPackages变量。一、mSettingsmSettings在PKMS的构造函数中创建,这里mPackages变量传进去,仅仅是作为lock使用 public PackageManagerService(Context context, Installer installer, boolean facto

2016-11-21 16:25:25 2184 1

原创 Android资源管理框架(三)应用程序资源的查找过程

原文地址:http://blog.csdn.net/luoshengyang/article/details/8806798我们知道,在Android系统中,每一个应用程序一般都会配置很多资源,用来适配不同密度、大小和方向的屏幕,以及适配不同的国家、地区和语言等等。这些资源是在应用程序运行时自动根据设备的当前配置信息进行适配的。这也就是说,给定一个相同的资源ID,在不同的设备配置之下,

2016-11-17 11:17:30 3449

原创 Android资源管理框架(二)AssetManager创建过程

Android应用程序在运行的过程中,是通过一个称为AssetManager的资源管理器来读取打包在APK文件里面的资源文件的。在本文中,我们就将详细分析Android应用程序资源管理器的创建以及初始化过程。应用程序的每一个Activity组件都关联有一个ContextImpl对象,这个ContextImpl对象就是用来描述Activity组件的运行上下文环境的。Activity组件是

2016-11-17 09:29:04 4522 1

原创 Android资源管理框架(Asset Manager)(一)简介

原文:  http://blog.csdn.net/luoshengyang/article/details/8738877 这篇博客是在上面这篇原文基础上删减了一些东西。Android应用程序主要由两部分内容组成:代码和资源。资源主要就是指那些与UI相关的东西,例如UI布局、字符串和图片等。代码和资源分开可以使得应用程序在运行时根据实际需要来组织UI。这样就可使得应用程序只需要编

2016-11-16 14:41:44 2434

原创 Android6.0关于预置三方app卸载(二) 调用接口安装

之前的博客也分析过如何安装三方app,是在第一次开机时将system/third-app下面的apk文件copy到data/app下。这样apk卸载后,恢复出厂设置又能安装上。但是会低概率的出现有的app安装有问题,不知道什么原因,具体是应用启动的时候加载资源出了问题,后续我们再深入资源系统研究下,这里先给出一个临时方案。就是模仿installPackageAsUser接口来安装应用,就是先c

2016-11-15 11:23:44 1387

原创 Android消息机制 异步消息 & 消息队列排序

之前消息机制的原理都已经分析过了,不过对java层的消息队列的排序和异步没有详细讲过。一、消息队列排序一般的像我们普通调用Handler发送消息,最后都会调用MessageQueue的enqueueMessage。 public boolean sendMessageAtTime(Message msg, long uptimeMillis) { Mess

2016-11-08 16:26:23 2975

原创 Android6.0 WMS(一) WMS和应用进程的关系

之前在分析Activity的时候有很多和WMS相关的,我们这里再简单总结下和WMS相关的那部分。一、appToken在WMS中创建在博客http://blog.csdn.net/kc58236582/article/details/52413871中在APPWindowToken创建过程这节中,我们分析到在AMS调用startActivityLocked的时候,会调用WMS的add

2016-11-08 11:10:14 3919

原创 Android6.0 PKMS扫描目录和调用接口安装应用的区别

android安装应用分两种,一种是直接调用PKMS的接口安装,另一种是扫描目录安装,比如系统开机的时候会扫描data/app目录进行安装。一、调用installPackageAsUser函数安装我们先来看调用接口应用安装应用,都会通过如下函数,这个函数先会通过传进来的uid来判断是否是adb安装的,然后创建了一个InstallParams对象这个对象是HandlerParams的

2016-11-04 07:15:29 4551

原创 android6.0 开机启动流程

这篇博客讲下android开机启动流程,init那部分之前在分析init进程的时候,讲过了,我们就不看了。当然我们结合log看。整个开机的时间,我们一SurfaceFlinger来算,先从如下log开始,下面这句log,是在SurfaceFlinger的构造函数的第一句打印,记录了当前的时间。10-31 10:21:57.563044 1588 1588 I SurfaceFlinge

2016-11-01 14:19:35 4775

android关机时间慢

android关机时间慢

2017-01-05

selinux问题

selinux问题

2017-01-05

Android AlarmManager

Android AlarmManager

2017-01-05

跟我一起写makefile

跟我一起写makefile

2016-07-15

opencv 保存录像

opencv中用来保存摄像头录的录像,c++语言摄像头播放录像

2011-09-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除