Android系统框架学习
andyhuabing
这个作者很懒,什么都没留下…
展开
-
android 编译STL模块相关错误解决
由于android系统目前没有将boost加入,这里面使用了大量的STL及C++的一些语言特性,导致编译出现令人非常头痛的问题。1、出现类似的异常函数错误boost/exception/detail/exception_ptr.hpp:382: error: expected ';' before 'catch'boost/exception/detail/exception_pt原创 2013-02-19 16:12:46 · 18695 阅读 · 0 评论 -
android --- 应用无工程文件eclipse打开
今天需要在eclipse上研究一下android系统下的 packages\apps 应用代码,想利用eclipse 开发工具打开,但发现都没有工程文件,因此就自已做工程文件,其实非常简单。1、从一个现有创建好的eclipse工作区内找到这两个文件: .classpath 及 .project其内容如下: .classpath 基本上不用修改原创 2013-03-04 17:20:14 · 5645 阅读 · 0 评论 -
busybox应用于android系统
由于Android自带的toolbox(位于/system/bin中)也太简略了点,有些命令如find,Android并不支持或者支持得不好。所以有必要为Android加入busybox工具,通过编译得到一个可以在Android里面运行的busybox工具,我们就可以使用众多常见的linux命令了,如find,touch等。1、下载busybox源码或者从厂商给的SDK中获取到2、原创 2011-07-30 09:39:32 · 2316 阅读 · 0 评论 -
Unknown mandatory EABI object attribute 44
底层链接时报错Unknown mandatory EABI object attribute 44,因为这个是使用NDK8.0 ARM 编译的,而到linux下编译是使用prebuilt下的盒子编译器,两者都是ARM编译器,上网搜都是说交叉编译器使用的和底层不一样。第一部分:EABI 是什么呢?Embedded application binary interface, 即嵌入式应原创 2013-03-06 15:12:44 · 7630 阅读 · 0 评论 -
常见android编译错误解决
1、32位系统下的编译如果需要在32位系统中编译android系统,在编译前需要对部分makefile进行修改首先修改build/core/main.mk,修改的内容如下所示: -ifneq (64,$(findstring 64,$(build_arch)))+ifneq (i686,$(findstring i686,$(build_arch)))$(warni原创 2011-07-13 14:19:03 · 7380 阅读 · 0 评论 -
android -- libcurl移植、编译与测试
大家都知道,curl是利用URL语法在命令行方式下工作的文件传输工具支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。因此将其移植到android平台使用。目前 http://curl.haxx.se/ 网站上最新的版本:curl and libcurl 7.29.0网上也有人移植过curl,其实原创 2013-02-28 11:53:13 · 6799 阅读 · 4 评论 -
android--系统jar包引用
作为android开发工程师,经常会与android系统代码打交道,如果修改了系统代码并有实现了新的java类,而在eclipse工程师需要使用时则必须将引用jar包才能编译通过,如下介绍两种方法:第一部分:生成系统的jar包文件方法1、可以直接到在线编译上(android系统编译处)拿jar包文件,参考路径:out\target\common\obj\JAVA_LIBRARI原创 2013-02-28 10:25:14 · 19876 阅读 · 0 评论 -
android -- 编译不同库及编译脚本之区别
我们经常会编译不同库在不同的场合下,而也经常与第三方有合作,对方提供静态库,动态库及配置文件,也有可能需要提供库给对方等等,借此机会将所使用的一些情况作个总结。下面写的android.mk都是一些模板,可能模块可能不需要但加上也无所谓,必要时直接加即可。1、编译生成动态库LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)原创 2013-03-18 10:42:07 · 3750 阅读 · 0 评论 -
Android 属性系统 Property service 设定分析
Android 属性系统 Property service 设定分析在Window中有个注册表的东东,可以存储一些类似key:value的键值对,而在android平台上也有类似的机制叫做属性服务(Property service)进行初始化,设置及修改和查询的功能,adb shell命令使用 setprop 及 getprop 可以看到。问题:SurfaceFlinger启动原创 2012-03-22 09:46:34 · 15575 阅读 · 0 评论 -
android 编译boost动态库
有个android项目上需要使用到boost标准c++库,Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一,所以想将其移植到android系统上进行编译。直接从网上下载 boost1.52版本,然后写makefile。。。进行编译,,碰到无数的编译错误。求助于google网络,终于发现一个好东东:一个通过NDK编译boost代码的git项原创 2013-02-20 15:31:52 · 15413 阅读 · 11 评论 -
android recovery 主系统代码分析
阅读完上一篇文章: http://blog.csdn.net/andyhuabing/article/details/9226569 我们已经清楚了如何进入正常模式和Recovery模式已有深刻理解了,假设进入了Recovery模式,那么其核心代码是怎么做的呢?代码路径在 android 源码的根路径: bootable\recovery 其入口文件就是 recovery.c 中原创 2013-07-05 14:05:09 · 30953 阅读 · 0 评论 -
Android 消息处理 -- Looper 、Handler类
Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统。而Android应用程序也是消息驱动的,按道理来说也应该提供消息循环机制。Android通过Looper、Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环)。在 Android 系统 ,这些工作由由由Looper 及 Handler 来完成原创 2012-03-19 13:18:39 · 3448 阅读 · 0 评论 -
android SystemUI 流程分析
android4.0 -- SystemUI 流程分析什么是SystemUI?对于Phone来说SystemUI指的是:StatusBar(状态栏)、NavigationBar(导航栏)。而对于Tablet或者是TV来说SystemUI指的是:CombinedBar(包括了StatusBar和NavigationBar)。启动后Phone界面上的信号,蓝牙标志,Wi原创 2013-10-18 14:00:23 · 36739 阅读 · 5 评论 -
android - home键及launcher启动流程分析
android - home键及launcher启动流程分析launcher,也就是android的桌面应用程序,开机启动的第一个应用程序及按home键进入的都是这个程序。如果需要修改启动流程或者制作一个新的launcher,都有必要了解一下这个流程。第一部分:系统默认Home应用程序(launcher)启动流程1、frameworks/base/ser原创 2013-11-01 10:59:01 · 25142 阅读 · 2 评论 -
sp和wp的实现过程~~
(转)sp和wp的实现过程~~ sp和wp实际上就是android 为其c++实现的自动垃圾 回收机制 ,具体到内部实现,sp和wp实际上只是一个实现垃圾回收功能的接口 而已,比如说对*,->的重载,是为了其看起来跟真正的指针一样,而真正实现垃圾回收的是refbase这个基类。这部分代码的目录 在:/frameworks/base/include/utils/RefBase.转载 2014-02-28 12:09:37 · 2309 阅读 · 0 评论 -
bootchart 使用说明及代码分析
bootchart是一个对linux启动流程进行分析得开源软件工具。android中有集成bootchart源码,路径为system/core/init/bootchart.c 先从具体使用流程如下:1、编译android中的bootchart(缺省时不被编译) 在android源码system/core/init/目录执行: mm INIT_BOOTCHART=true原创 2014-04-14 12:02:31 · 17852 阅读 · 6 评论 -
Android 待机功能流程分析
Android智能手机或机顶盒子为了进入省电模式、所以就需要有待机功能。PowerManager.java 类提供了如下的电源管理功能:public void goToSleep(long time) 强迫设备进入睡眠状态public void reboot(String reason) 重启设备提供了内部类: public final class WakeLock原创 2015-11-04 16:38:55 · 12444 阅读 · 1 评论 -
Android 无法接收开机广播的问题
Android手机开机后,会发送android.intent.action.BOOT_COMPLETED广播,监听这个广播就能监听开机。一般的步骤如下:注册广播123456<receiver android:name="com.netmoon.broadcast.Boot原创 2015-11-06 10:52:50 · 22807 阅读 · 7 评论 -
android -- WatchDog看门狗分析
android -- WatchDog看门狗分析在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"。在原创 2012-03-26 16:10:38 · 13452 阅读 · 0 评论 -
字符编码问题
用比较简单的话来说就是,Unicode定义了所有可以用来表示字符的数值集合(称之为Code Point)。UTF-8和UTF-16等UTF标准定义了这些数值和字符的映射关系。ASCII字符集:英文字母再加一些其他标点字符之类的也不会超过256个.一个字节表示者足够了ISO 定义任何一个字符只对应一个确定的数字即 UCS(Universal Charact原创 2015-11-04 14:56:52 · 2355 阅读 · 0 评论 -
sp&wp 的三板斧
根据《深入理解Android 卷I》改编而来、加入自已的理解而来。对于sp&wp的理解一直知道不够深入、真好有时间、彻底深究一下、典型的程序员风格。透过代码看本质。这里对于最核心的sp&wp的构造及析构讲解。参数代码下载地址:http://download.csdn.net/detail/andyhuabing/9251737 通过eclipse打开c工程、即可单步调试。原创 2015-11-09 12:02:38 · 2059 阅读 · 1 评论 -
Android4.4深入浅出之SurfaceFlinger总体结构
转发自: http://blog.csdn.net/w401229755/article/details/38420191Android4.4 GUI系统框架之SurfaceFlinger一. Android GUI框架:SurfaceFlinger:每当用户程序刷新UI的时候,会中介BufferQueue申请一个buffer(deq转载 2016-11-16 14:26:55 · 2003 阅读 · 0 评论