关闭

Java反射基础用法

基本用法(类调用): //获取系统属性值反射方法 public String getSystemProperty(String key) { String v = ""; try { Class c = Class.forName("android.os.SystemProperties"); Method m = c.getDeclaredMethod("get", String....
阅读(19) 评论(0)

超实用的Java数组技巧攻略

本文分享了关于Java数组最顶级的11大方法,帮助你解决工作流程问题,无论是运用在团队环境或是在私人项目中,你都可以直接拿来用!  0.  声明一个数组(Declare an array)  [js] view plaincopy String[] aArray = new String[5];   String[] bArray =...
阅读(99) 评论(0)

Android 4.x Gallery2分析

Gallery2介绍 Gallery2主要功能是实现Android系统本地存储以及网络存储中的媒体(图片&视频)资源的浏览,媒体信息,显示和更多操作(删除、分享、选择、缩放、编辑等)。 Gallery2界面的生成和普通的应用程序不同,普通应用程序一般就一个界面对应一个activity,搭配布局xml或代码来实现界面的显示,而Gallery2没有用到android的UI系统,而是通过open...
阅读(719) 评论(0)

Android5.0 Alarm服务简单分析

Alarm的触发过程 下图1是alarm触发的一个大致流程。 首先应用会调用AlarmManager提供的set接口,将一个含有触发时间和触发事件的alarm对象添加到一个由AlarmManager服务维护的alarm列表中,同时alarm列表会计算出最优先的alarm对象(最先起来)设置到底层RTC设备中。但这个时间点到了,RTC会上发信息并通知AlarmManager服务去触发相应的事...
阅读(240) 评论(0)

pms包管理服务分析-apk卸载流程

apk的卸载流程相对比较简单,总结大方向就两步,一个是删除安装的文件和数据,另外一个是清除内存信息。另外要注意的是在多用户模式下,apk的卸载删除则不是单纯的删除文件。 下面来看看apk的卸载流程。 [/frameworks/base/core/java/android/app/ApplicationPackageManager.java] @Override publi...
阅读(371) 评论(0)

pms包管理服务分析-外部安装流程(adb/packageInstaller)

系统开机过程中扫描并安装apk的过程是针对已有的apk文件。针对外部apk的安装,pms提供了另外的接口。我们一般也就通过两种方式去安装外部apk,一种是通过adb的install命令安装外部应用。另外一种是通过系统应用PackageInstaller,通过界面引导的方式安装外部应用。下面分别来分析这两种安装方式的过程和相同的地方。 通过adb install命令安装外部应用 ...
阅读(230) 评论(0)

pms包管理服务分析-证书校验流程

Apk签名后,apk文件目录下生成了一个名为META-INF目录,里面有三个文件,分别是MANIFEST.MF, CERT.SF和CERT.RSA; 其中MANIFEST.MF中记录的是apk中所有文件的摘要值;CERT.SF中记录的是对MANIFEST.MF的摘要值,包括整个文件的摘要,还有文件中每一项的摘要;而CERT.RSA中记录的是对CERT.SF文件的签名,以及签名的公钥...
阅读(296) 评论(1)

pms包管理服务分析-权限管理和鉴权过程

Android系统权限是建立在框架层上的一套权限解析分配和鉴权流程,其主要数据结构和校验流程主要在pms(包管理服务)中实现。 简单理解系统权限机制主要分为权限解析、权限分配、鉴权这三个主要内容。 Sdk版本大于等于23后,新增了动态权限管理,让Android系统权限管理更加灵活和自主。 下面来分析下Android 5.1上面的权限管理和鉴权过程。 权限的数据结构 涉及到...
阅读(557) 评论(0)

pms包管理服务分析-PackageParser.Pacakge, Settings, PackageSettings的结构和关系

Settings提供可持续化的包信息管理,PackageSetting是一个存储单元,表示一个pkg信息。 pp.Package可以理解pkg信息在内存中的一个实时信息,关机后便消失,重启后重新生成,所以pp.Package中的信息一直保证最新。 pp.Package, Settings和PackageSetting三者的关系如下图所示: Settings中保存了一个包名和Pac...
阅读(176) 评论(0)

pms包管理服务分析-PackageManagerService构造函数和包扫描过程

上一章pms初步理解中提到SystemServer启动pms只创建了一个pms实例,那么重点在pms的实例化过程究竟做了什么事情,下面来研究下pms的构造方法。 PackageManagerService构造方法 ①: [/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java]...
阅读(403) 评论(0)

pms包管理服务分析-初步理解

初步理解 Android系统启动过程中,会启动一个包管理服务PackageManagerService(pms),这个服务主要负责扫描系统中指定目录,找出里面以apk结尾的文件,通过对这些文件进行解析,得到应用程序的所有信息并完成应用程序的安装过程。包管理服务中解析出来的apk信息供其它服务使用,如ams。 pms主要解析apk的AndroidManifest文件里面的所有信息,包括应用程...
阅读(208) 评论(0)

[转]Android Context应用上下文详解

Context类 ,说它熟悉,是应为我们在开发中时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ; 说它陌生,完全是因为我们真正的不懂Context的原理、类结构关系。一个简单的问题是,一个应用程序App中存在多少个Context实例对象呢?一个、两个? 在此先卖个关子吧。读了本文,相信您会豁然开朗的 。 ...
阅读(180) 评论(0)
    个人资料
    • 访问:3554次
    • 积分:141
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1条