安卓开发
tang_fu
这个作者很懒,什么都没留下…
展开
-
android 修改 system.img 方法
android 修改 system.img 方法 2011-09-24 10:16:11| 分类:obsolete | 标签:android system.img |举报|字号大中小 订阅1. 前提条件l 源码下载完毕l 源码Make完成2. 修改文件修改launcher比较容易验证。在此,修原创 2014-08-19 22:22:05 · 1985 阅读 · 0 评论 -
Android的软件包管理服务PackageManagerService源码分析
Android系统下的apk程序都是通过名为PackageManagerService的包管理服务来管理的。PacketManagerService是安卓系统的一个重要服务,由SystemServer启动,主要实现apk程序包的解析,安装,更新,移动,卸载等服务。不管是系统apk(/system/app),还是我们手工安装上去的,系统所有的apk都是由其管理的。 以android 4原创 2014-05-11 19:26:16 · 1231 阅读 · 0 评论 -
手写签名系统的设计与实现之实现pdf文件上手写签名效果
前几篇文章我们分别介绍了显示文件列表、解析pdf、手写画板及画笔设置的功能了,今天我们就介绍一下,最后最关键的一部分-手写签名效果。先看看效果图:选定位置 画板上写字 预览签名效果一、实现原理:对于pdf文件上进行相关操作,本人并没找到一些比较好的方法,为了实现签名效果,尝试了很多方法也没达到预期效果,最后这种实现方法相对好些,也比较简单。其基本思想是根据对pdf文件加印章转载 2014-04-17 18:20:35 · 2128 阅读 · 2 评论 -
用iText给pdf添加水印图片
[java] view plaincopy /** * 给pdf文件添加水印 * @param InPdfFile 要加水印的原pdf文件路径 * @param outPdfFile 加了水印后要输出的路径 * @param markImagePath 水印图片路径 * @param pageSize 原pdf文件的总页数(该方法是我当初将数原创 2014-04-17 18:21:34 · 999 阅读 · 0 评论 -
APK安装过程及原理
应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作。APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。 Android应用安装有如下四种方式1. 系统应用安装――开机原创 2014-03-06 20:03:28 · 481 阅读 · 0 评论 -
Android之vold进程启动源码分析
1.Vold (Volume Daemon)介绍vold进程接收来自内核的外部设备消息,用于管理和控制Android平台外部存储设备,包括SD插拨、挂载、卸载、格式化等;当外部设备发生变化时,内核通过Netlink发送uEvent格式的消息给用户空间程序,Netlink 是一种基于异步通信机制,在内核与用户应用间进行双向数据传输的特殊 socket,用户态应用使用标准的socket A转载 2014-03-06 09:20:22 · 579 阅读 · 0 评论 -
Android 4。0源码目录结构详解
在学习Android的过程中,学习写应用还好,一开始不用管太多代码,直接调用函数就可以了,但是工作中却需要修改到framework之类的东东所以感觉开始纠结了,又是初学,很多不懂,所以就去找了关于源代码结构介绍的,感觉有很大帮助,所以转载过来分享Android 4.0|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导转载 2014-03-06 09:29:47 · 456 阅读 · 0 评论 -
Android应用程序包扫描过程源码分析
在Android服务之PackageManagerService启动源码分析中介绍了PackageManagerService服务的整个启动过程,启动过程相对来说较为简单,就是构造一个PackageManagerService对象,然后注册到ServiceManager进程中,只是PackageManagerService对象的构造过程比较复杂,任务比较繁重,在前面介绍PackageManager转载 2014-03-04 18:39:18 · 642 阅读 · 0 评论 -
安卓多用户管理资料
Multi-user support is one of the few remaining things a desktop OS can do that Android can't. The "coffee table tablet" use case would greatly benefit from a multi-user setup, as would an enterprise原创 2014-06-26 20:43:58 · 753 阅读 · 0 评论 -
如何单独编译Android源代码中的模块
第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了。以后如果我们修改了Android源代码中的某个模块或者在Android源代码工程新增一个自己的模块,是不是还是执行make命令呢?答案是否定的,Google为我们准备了另外的命令来支持编译单独的模块,以及重新打包system原创 2014-07-23 17:18:22 · 466 阅读 · 0 评论 -
修改Android的system.img镜像
You can modify system image. Pre-installed applications are located at /system/app/ folder. You can add new application to this folder or remove pre-existing applications from that folder.Applicatio原创 2014-08-19 22:19:54 · 1927 阅读 · 0 评论 -
android system/etc/目录生成文件
如果要在android的system/etc/里放置文件,则,在make之前,把需要用到的文件放到device/qsts/aspen_common/rootfs/etc/目录下,并且配置一下这个文件device/qsts/aspen_common/rootfs/Android.mk ,把加进来的文件路径写上,这样在make时,才会把东西输出到out/target/product/kylin/sys原创 2014-08-19 21:52:39 · 2315 阅读 · 0 评论 -
Android 制定的ROM包(文件系统根目录结构分析)
文件系统根目录结构分析Android文件系统根目录结构如下:[plain] view plaincopyprint?# ls -l lrwxrwxrwx root root 2011-01-01 20:00 bcm4329_cybertan.hcd -> /etc/bluez/bcm432x/BCM4329B1_002.002转载 2014-08-19 21:37:03 · 708 阅读 · 0 评论 -
adb push时 Read-only file system的错误
adb push libxxx.so /system/lib出现错误failed to copy 'libxxx.so' to '/system/lib/libxxx.so': Read-only file system 首先adb remountadb shell后,将system 和lib文件夹的读写模式改掉, chmod 777 system再试一次就可以了原创 2014-07-26 12:34:42 · 414 阅读 · 0 评论 -
Android 安全机制
1 Android 安全机制概述Android 是一个权限分离的系统 。 这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid , 从而使得不同的 Application 之间的私有数据和访问( native 以及 java 层通过这种 sandbox 机制,都可以)达到隔离的目的 。 与此 同时, Android 还 在此基础原创 2014-06-15 19:17:58 · 420 阅读 · 0 评论 -
android4.2.2开启多用户支持
步骤 1adb pull system/build.prop d:\步骤 2在build.prop文件里面加入fw.max_users=N(N代表最多能支持的用户数)步骤 3adb push d:\build.prop /system/adb shell chmod 0644 /system/build.propadb reboot步骤 4设置——用户——增加新转载 2014-07-26 12:35:49 · 599 阅读 · 0 评论 -
android4.2编译
编译环境的安装1.安装先到官方网站下载一个jdk6的安装包http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR我的系统为ubuntu12.0464位,对应自己系统下载好了转载 2014-07-26 12:33:28 · 386 阅读 · 0 评论 -
Android 4.4中apk包的安装过程
其实对于apk包的安装,4.4和之前版本没大的差别。Android中app安装主要有以下几种情况:系统启动时安装,adb命令安装,Google Play上下载安装和通过PackageInstaller安装。安装的最核心方法是scanPackageLI(),以上几个安装方式最后都是调用这个函数完成主要工作的,区别在于在此之前的处理过程不同。本文以前两种为主,简要介绍这四种安装过程。 一个最一原创 2014-06-15 19:20:03 · 4643 阅读 · 0 评论 -
Android硬件抽象Hardware库加载过程源码分析
作为开放而非开源的Android系统,由于其基于Linux内核实现,在不违背Linux基于GPL许可前提下,为了隐藏各厂家自身特定硬件驱动实现细节,在用户空间定义了一套硬件抽象层,对硬件的操作细节从内核空间转移到用户空间。各厂商在Android的硬件抽象层实现特定硬件的操作细节,并编译成动态库,以库的形式提供给用户使用。Linux内核是基于GPL许可,即对源码的修改都必须开源,而Android是基转载 2014-03-04 18:37:25 · 389 阅读 · 0 评论 -
Android IPC数据在内核空间中的发送过程分析
在上一篇文章Android请求注册服务过程源码分析中从Java层面和C++层面分析了服务请求注册的过程,无论Java还是C++最后都是将需要发送的数据写入的Parcel容器中,然后通过Binder线程持有对象IPCThreadState向Binder驱动发送,本文继续在Android请求注册服务过程源码分析的基础上更深入地介绍服务注册的整个过程。客户进程向ServiceManager进程发送I转载 2014-03-04 19:18:07 · 449 阅读 · 0 评论 -
ServiceManager 进程启动源码分析
Service Manager是整个Binder机制的守护进程,用来管理开发者创建的各种Server,并且向Client提供查询Server远程接口的功能。Service Manager作为本地服务由Init进程启动,在Android Init进程源码分析中详细分析了Init进程是如何启动本地服务的,在Init.rc配置文件中有这么一段配置:[plain] view pla转载 2014-03-04 19:15:36 · 430 阅读 · 0 评论 -
Android 匿名共享内存驱动源码分析
Android系统的匿名共享内存Ashmem驱动程序利用了Linux的共享内存子系统导出的接口来实现,本文通过源码分析方式详细介绍Android系统的匿名共享内存机制。在Android系统中,匿名共享内存也是进程间通信方式的一种。相比于malloc和anonymous/named mmap等传统的内存分配机制,Ashmem的优势是通过内核驱动提供了辅助内核的内存回收算法机制(pin/unpin)。转载 2014-03-04 18:49:25 · 463 阅读 · 0 评论 -
Android Service之MountService源码分析
Android 存储设备管理框架在android之VOLD进程启动源码分析一文中介绍了存储设备的管控中心Vold进程,Vold属于native后台进程,通过netlink方式接收kernel的uevent消息,并通过socket方式将uevent消息发送给MountService,同时实时接收MountService的命令消息,MountService,Vold,Kernel三者的关系如下图所转载 2014-03-04 19:30:52 · 1173 阅读 · 0 评论 -
Android uevent进程源码分析
在Android Init进程源码分析中讲到init进程会依次执行被加入到待执行队列action_queue中的Action,在init.rc中我们有这么一段配置:[plain] view plaincopyprint?11 on early-init 12 # Set init and its forked children's oom_adj. 13转载 2014-03-04 19:20:15 · 523 阅读 · 0 评论 -
深入分析Android Binder 驱动
Binder通信是基于Service和Client的,所有需要IBinder通信的进程都必须创建一个IBinder接口。系统使用一个名为ServiceManager的收获进程管理着系统中的各个服务,它负责监听是否有其他程序向其发送请求,如果有请求就响应,如果没有,则继续监听等待。每个服务都要在ServiceManager中注册,而请求服务的客户端则向ServiceManager请求服务。在Andr转载 2014-03-04 19:04:23 · 489 阅读 · 0 评论 -
Zygote进程启动过程源代码分析
Zygote进程介绍在Android系统中,存在不同的服务,这些服务可以分为:Android系统借用Binder通信机制实现了C/S架构设计,客户端应用程序如需要实现某些功能,只需请求指定的服务,由服务端来实现。Android服务包括以上的系统服务和应用服务,系统服务是指Android系统在启动过程就已经启动实现了的服务,对于系统服务又分为Java服务和本地服务,其实很好区分,翻译 2014-03-04 17:58:55 · 605 阅读 · 0 评论 -
安卓系统加电引导流程剖析
1. Power on and boot ROM code execution 开机并执行 boot ROM 代码 At power on the CPU will be in a state where no initializations have been done. Internal clocks are not set up and the onl转载 2014-02-26 15:57:14 · 638 阅读 · 0 评论 -
android 4.0系统启动代码流程剖析
init 运行,代码:system/core/init ,入口:system/core/init/init.c main 函数: 1 int main(int argc, char **argv){ 2 3 ... 4 // 初始化文件系统 5 mkdir("/dev", 0755); 6 mkdir("/proc",转载 2014-02-26 15:25:20 · 574 阅读 · 0 评论 -
Android 应用程序进程启动过程源码分析 .
在Zygote进程启动过程的源代码分析一文中介绍到,Zygote是java世界的开创者,所有的java应用进程都是通过Zygote孵化出来的。我们知道在Android应用程序框架层中,ActivityManagerService组件负责管理Android应用程序的创建,ActivityManagerService也是运行在独立的进程SystemServer中,SystemServer进程启动过程源转载 2014-03-04 17:41:32 · 676 阅读 · 0 评论 -
Android电话来电流程源码分析
Android的Phone设计的相当复杂,只有了解了Phone的设计框架才能把握电话的拨号或来电流程,在Android电话拨打流程源码分析中已经分析介绍了电话拨打流程,这里介绍一下电话的来电流程。要理解这节内容,首先要知道Android电话的层次设计Framework层的RIL中的RILReceiver线程从rild服务进程中读取modem发送上来的来电消息等信息,通过消息注册-响转载 2014-03-04 18:52:31 · 1055 阅读 · 0 评论 -
Android电话拨打流程源码分析
前面分析了电话拨号界面及电话呼叫界面,由于Android的电话Phone设计的很复杂,因此先从UI层入手分析。想要了解Android的电话拨号UI,请查看Android电话拨号UI分析,电话拨号UI在Contacts包中。想要了解Android电话呼叫UI,请查看Android电话Phone UI分析,该UI在Phone包中,了解完电话想要UI后,还必须首先了解Android的Phone设计框转载 2014-03-04 18:58:37 · 1053 阅读 · 0 评论 -
Android服务之PackageManagerService启动源码分析
了解了Android系统的启动过程的读者应该知道,Android的所有Java服务都是通过SystemServer进程启动的,并且驻留在SystemServer进程中。SystemServer进程在启动时,通过创建一个ServerThread线程来启动所有服务,本文主要介绍Android服务中PackageManagerService服务启动过程。首先介绍一些PackageManagerServi转载 2014-03-04 18:41:47 · 542 阅读 · 0 评论 -
SystemServer进程启动过程源码分析
在上一篇文中介绍了Zygote进程的启动过程,我们知道,Zygote进程是Android Java世界的开创者,所有的Java应用程序进程都由Zygote进程创建。Zygote创建应用程序进程过程其实就是复制自身进程地址空间作为应用程序进程的地址空间,因此在Zygote进程中加载的类和资源都可以共享给所有由Zygote进程孵化的应用程序,应用程序进程只需加载自身私有资源就可以正常运行,Zygote转载 2014-03-04 17:45:20 · 594 阅读 · 0 评论 -
Android Init进程源码分析
Init 进程源码分析基于Linux内核的android系统,在内核启动完成后将创建一个Init用户进程,实现了内核空间到用户空间的转变。在Android 启动过程介绍一文中介绍了Android系统的各个启动阶段,init进程启动后会读取init.rc配置文件,通过fork系统调用启动init.rc文件中配置的各个Service进程。init进程首先启动启动android的服务大管家S转载 2014-03-04 19:26:12 · 1309 阅读 · 0 评论 -
Android安装服务installd源码分析
在Android系统中,PackageManagerService用于管理系统中的所有安装包信息及应用程序的安装卸载,但是应用程序的安装与卸载并非PackageManagerService来完成,而是通过PackageManagerService来访问installd服务来执行程序包的安装与卸载的。PackageManagerService通过套接字的方式访问installd服务进程,转载 2014-03-04 18:44:15 · 873 阅读 · 0 评论 -
Android服务启动之StartService源码分析
在编写Android应用程序时,我们一般将比较耗时的操作放在一个独立的进程来处理,这样主进程仍然可以流畅地响应界面事件,提高用户体验。Android系统为我们提供了一个Service类,我们可以实现一个以Service为基类的服务子类,在里面实现自己的计算型逻辑,然后在主进程通过startService函数来启动这个服务。在本文中,将详细分析应用程序进程是如何通过startService函数来启动转载 2014-03-04 18:02:04 · 564 阅读 · 0 评论 -
安卓4.0系统启动流程源码剖析(整理版)
Android系统启动过程首先Android框架架构图:(来自网上,我觉得这张图看起来很清晰) Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用。启动的过程如下图所示:(图片来自网上,后面有地址) 下面将从Android4.0源码中,和网络达人对此的总结中,对此过程加以学习了解和总结,以下学习过程中代原创 2014-02-26 16:00:59 · 444 阅读 · 0 评论