android
文章平均质量分 87
zgolee
我要站在什么位置,才能触及阳光、感受幸福呢?
展开
-
android编译系统 - pathmap.mk
<br />build/core/pathmap.mk 文件定义了一个列表pathmap_INCL,列表中每项是"短名:路径"对。宏函数include-path-for将会使用这个列表,来通过短名获取相对于的路径,<br />如:$(call include-path-for,短名)<br /> <br /> <br />#<br /># A mapping from shorthand names to include directories.<br /># "短名: 路径"对列表pathmap_IN原创 2011-03-21 11:23:00 · 4876 阅读 · 0 评论 -
Android系统启动流程 -- linux kernel
第二部分:linux启动 一、zImage是怎样炼成的? zImage是linux内核编译之后产生的最终文件,它的生成过程比较复杂,这里不谈编译过程,只聊聊编译的最后阶段: 1. arm-linux-gnu-ld用arch/arm/kernel/vmlinux.lds、arch/arm/kernel/head.o、arch/arm/kernel/init_task原创 2011-11-30 21:56:56 · 9806 阅读 · 2 评论 -
Android新特性介绍
这篇文章来自一位台湾同胞的博客,写的非常好,认真读下来会受益匪浅。非常感谢这位朋友的贡献。http://blog.csdn.net/hlchou/article/details/6158379 Android筆記.hlchou@mail2000.com.twby loda.chou 有好一段時間,都在ARM based RTOS通訊產品中開發,很難有機會回到Embedd转载 2011-12-19 13:55:13 · 3625 阅读 · 0 评论 -
android recovery模式流程
前言: 前几天做了通过T卡安装gms应该,也做了在recovery中强制删除的动作,不过这些都是在eng-release版本软件中测试的。现在上面要求以后发布user-release版本的软件,所以这个功能也应该在user-release中进行测试。之前的不能再recovery中删除是因为,没有将删除的动作放到recovery的init.rc文件中去,后来加上即ok。 不过奇怪的是原创 2011-12-16 14:12:20 · 9174 阅读 · 7 评论 -
android apk反编译打包签名
APK反编译打包签名一、JDK安装和环境配置1. jdk1.6下载地址:http://download.java.net/jdk6/ jdk-6u17-windows-i586.exe2. 安装,一路默认即可。3. 环境变量设置 xp系统:我的电脑 -> 属性 -> 高级 -> 环境变量 新建JAVA_HOME变量,变量值为:C:\Program Files\Jav原创 2011-12-16 14:23:28 · 12516 阅读 · 0 评论 -
android apk安装原理分析
参考了网上的资料和源码,肤浅分析了下,不够深入。 Android APK安装原理分析一、概述APK是Android Package的缩写,即Android安装包。APK安装可以通过以下四种方式:1. 系统应用安装,开机时完成系统应用的检查,没安装就安装,安装就跳过,无安装界面。2. 网络下载应用安装,通过market应用完成,无安装界面。3. ADB工具安装,无安装原创 2011-12-16 14:20:26 · 24950 阅读 · 5 评论 -
android installd分析
installd分析android apk安装最后使用服务installd来实现,源码路径:frameworks/base/cmds/installd$ ls -l frameworks/base/cmds/installdtotal 68-rw-r--r-- 1 lizhiguo lizhiguo 2321 2011-11-15 17:06 Android.mk-rw-原创 2011-12-16 14:21:32 · 14026 阅读 · 1 评论 -
MT6573 android2.3.4 OTA包的生成研究
版本:android2.3.4主要文件:build/core/Makefile build/tools/releasetools/ota_from_target_files第一阶段:update原材料目录生成,作为第二阶段的输入。build/core/Makefile +line 1118 ~ line 1311中间目录在:out/target/product/g原创 2012-01-30 11:57:46 · 7550 阅读 · 0 评论 -
android jni代码编写规则--整理总结
JNI层的代码其实比较简单,难点是要掌握c++和java数据类型的转换,明白java程序是运行在虚拟机中的,特别是函数并不是可以互相调用,jni中的内存概念并没有暴露给java虚拟机进程等。 一. java参数类型和jni本地参数类型对照 基本类型Java 类型 jni本地类型 描述 boolean原创 2012-01-30 12:15:48 · 24500 阅读 · 2 评论 -
android编译dex-preopt
对于android2.3编译时候选择下面的情况,既可以对dex进行preopt优化了。$ cat buildspec.mkTARGET_BUILD_VARIANT:=userTARGET_BUILD_TYPE:=release编译相关文件:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++原创 2012-01-30 11:55:10 · 13040 阅读 · 0 评论 -
android中动态和静态版本都有的库
通过比较out/.../下的obj中SHARED_LIBRARIES,STATIC_LIBRARIES,删选出一下几个共同的库。ccutilsext4_utilsmstdc++thread_dbutilswebcorezlog android重写的标准c函数库libc:$ cd STATIC_LIBRARIES$ cd libc_interm原创 2012-01-30 12:02:32 · 13462 阅读 · 0 评论 -
android 集成第三方静态库的编译方法
最近为java层将一个静态库通过jni层封装成了一个动态库工他们调用,遇到了一些编译上的疑惑,所以索性将其彻底搞清楚算了,免得以后误事。 下面的图片列出了所有相关文件,可以看到引用静态库的文件是com_xxx.cpp文件,而.a文件是放在lib目录下的libHWRecog.a,而库提供出来的头文件在include下的两个.h文件。原创 2012-01-30 12:07:04 · 64596 阅读 · 17 评论 -
android 4.0.3 usb插拔提示音播放问题分析
前言:最近客户看见别的android4.0.3机器插拔usb有播放提示音,而我们的机器没有。客户就开始抱怨了。公司没有做应用的人,没办法,让我这个对java半桶水的人搞,哎,只有硬着头皮弄。刚接到手,根本不知道从哪里开始,也不知道需要设置什么属性(后来看到源码里有读属性才知道),悲剧的很。按理说,这种通知提示google应该是早就形成机制做好的,只要配置好,应该就可以了,不过事情并原创 2012-04-26 16:48:59 · 7052 阅读 · 3 评论 -
Android系统启动流程 -- android
第三部分:Android启动 Android的启动过程是从进程init开始的,所以它是后续所有进程的祖先进程。一、init进程源码位于system/core/init目录。主要做了以下事情:1. 重新设置子进程终止时信号SIGCHLD的处理函数。act.sa_handler = sigchld_handler; //调用了wait函数等待子进程退出。act.原创 2011-11-30 22:04:06 · 17196 阅读 · 5 评论 -
Android系统启动流程 -- bootloader
摘要:本文讲解Android系统在启动过程中的关键动作,摈弃特定平台之间的差异,讨论共性的部分,至于启动更加详细的过程,需要结合代码分析,这里给出流程框架,旨在让大家对开机过程更明了。 关键词:U-boot、Linux、Android 目录: 第一部分:Bootloader启动一、Bootloader的定义和种类二、Arm特定平台的Bootloader三原创 2011-11-27 20:32:11 · 60614 阅读 · 7 评论 -
android智能指针sp wp详解
<br />研究android的时候,经常会遇到sp、wp的东西,网上一搜,原来是android封装了c++中对象回收机制。<br />说明:<br />1. 如果一个类想使用智能指针,那么必须满足下面两个条件:<br /> a. 该类是虚基类RefBase的子类或间接子类<br /> b. 该类必须定义虚构造函数。如virtual ~MyClass();<br />2. 本文以类BBinder来进行说明,其余类使用sp或wp的情况类似<br />3. 代码路径:frameworks/base/原创 2011-03-18 22:19:00 · 7544 阅读 · 10 评论 -
android编译系统 - findleaves.sh
<br />#!/bin/bash<br /> <br /># build/tools/findleaves.sh<br /><br /><br />set -o nounset # fail when dereferencing unset variables<br /># 扩展一个未设置的变量时显示一个错误信息<br /><br />set -o errexit # fail if any subcommand fails<br /># 当命令返回一个非零退出状态(失败)时退出<br /><br原创 2011-03-21 18:01:00 · 1440 阅读 · 0 评论 -
logcat使用
做android有些日子了,不过对基本的logcat的详细用法还是很模糊,今天有空,学习一下。logcat可以在adb中使用,也可以直接在命令行下使用。 logcat [options] [filterspecs] logcat的选项包括: -s 默认设置过滤器,如指定*:s. -f 输出到文件,默认情况是标准输出. -r []原创 2011-06-18 19:33:00 · 25244 阅读 · 2 评论 -
android log输出控制
1. java层java层打印log由类android.util.Log类实现,该类定义于文件:frameworks/base/core/java/android/util/Log.java (APP 框架层)对应的JNI层代码在文件:frameworks/base/core/j原创 2011-07-25 18:43:32 · 11227 阅读 · 0 评论 -
对binder驱动的理解
引用上篇文章作者的一幅经典图片描述,记录下读后的一点心得,没有对照源码深入分析,可能有的地方存在误解: 下面结合图1 binder通讯示例的图,总结以下三个过程:server向SMgr注册、client向SMgr获取特定名字服务的引用号、client和server通原创 2011-08-14 22:36:56 · 2997 阅读 · 1 评论 -
Android Binder设计与实现 – 设计篇
Android Binder设计与实现 – 设计篇 读后感: 这篇文章从理论讲解出发,基本看不到代码,但是条理清晰,逻辑明了,我前前后后反复读了几遍,结合作者的示例图片,还算是基本理解了其中的内容。作者很牛逼呀!只能这么说了。非常感谢作者的付出和分享。转载 2011-08-14 22:30:59 · 2130 阅读 · 1 评论 -
binder驱动-接收缓存区管理
传统IPC中数据经常采用存储-转发的方式来传递,这种方式中将数据拷贝2次,从用户空间到内核空间,再从内核空间到用户空间。不过binder驱动采用了一种新的方式,只将数据从发送端的用户空间拷贝到内核空间即完成了数据从一个进程到另一个进程的转移,实现它的关键在于binder驱动和接收原创 2011-09-20 23:07:20 · 5785 阅读 · 6 评论 -
binder驱动-交互时的传输实现(二)
三、 binder通讯实现3.1 场景概念某个进程在调用了binder_open()之后将会在驱动中各有一个binder_proc结构体与之对应,而每一个线程(包括主进程)却不一定在驱动中有一个binder_thread结构体与之对应(除非有调用ioctl进行过读写),如原创 2011-09-20 13:16:02 · 3837 阅读 · 0 评论 -
binder驱动-交互时的传输实现(四)
3.5 receive async requet 接收异步方式发送过来的请求和接收同步方式发来的请求基本一样,不同的是,在将binder_transaction的数据转换到binder_transaction_data之后,将会释放掉binder_transact原创 2011-09-20 13:19:59 · 5034 阅读 · 0 评论 -
binder驱动-订阅binder实体死亡通知
前面一篇文章介绍了binder通讯的实现,这篇讨论下这个在binder通讯中比较重要的通知机制:binder实体死亡通知。虽然说binder实体只要存在强引用就不会被销毁,但是这毕竟是跨进程的引用,谁也无法保证binder实体所在server关闭或者binder驱动一次退出而消失原创 2011-09-20 12:28:24 · 5028 阅读 · 0 评论 -
binder驱动-交互时的传输实现(一)
目录:一、binder初始化二、binder_open()、binder_mmap()三、binder通讯实现3.1场景概念3.2 Transaction request3.3 transaction async request3.4 receive原创 2011-09-20 13:10:45 · 3152 阅读 · 0 评论 -
binder驱动-交互时的传输实现(三)
3.3 transaction async request 对于异步传输,在上层空间传下来的数据结构binder_transcation_data中的flags域中可以体现出来,也就是flags的TF_ONE_WAY位为1,就表示需要异步传输,不需要等待回复数据。原创 2011-09-20 13:18:01 · 3888 阅读 · 0 评论 -
zygote服务启动
zygote是android启动及其运行时非常重要的一个服务进程,下面是它在启动过程中函数执行路线,比较简略,后面将上图。zygote, app_process, main()--> runtime[AppRuntime].start("com.android.inter原创 2011-09-27 14:12:17 · 2503 阅读 · 0 评论 -
Android 屏幕旋转
保存下,以后可能会用到,留个思路。http://bbs.imp3.net/thread-10216400-1-1.html android 屏幕旋转屏是LANDSCAPE的,要让它默认显示为PORTRAIT.1.kernel里要旋转FrameBuffer. 启动参数里加入fbcon=rotate:1 (0:正常屏; 1:顺时钟转90度; 2:转180度; 3:顺转载 2012-05-07 11:15:40 · 4594 阅读 · 4 评论