Android 系统源码
文章平均质量分 86
架构师训练营
惟日孜孜 无敢逸豫
展开
-
android 4.2安装GMS包
自己的安卓平台在客户处测试时,有反馈Network Signal Info 这个apk无法安装,提示缺少共享库。通过在网上搜索,确认是少了GMS包的缘故。也就是得自己把add on属性的文件包添加到自己的工程中。步骤如下:(1)从网上下载4.2的GMS包(可用网址http://goo.im/gapps/gapps-jb-20130812-signed.zip),可先用简单的打包方式来验证包转载 2013-11-05 15:20:29 · 5778 阅读 · 0 评论 -
Android.mk_文件语法规范
Android.mk编译文件是用来向Android NDK描述你的C,C++源代码文件的, 这篇文档描述了它的语法。在阅读下面的内容之前,假定你已经阅读了docs/OVERVIEW.TXT文件,了解了它们的脚色和用途。 一、概述 一个Android.mk file用来向编译系统描述你的源代码。具体来说: (1) 该文件是GNU Makefile的一小部分,会被编译系统解析一次或更多...转载 2013-06-08 16:33:36 · 1061 阅读 · 0 评论 -
Android系统开发之三:源码添加编译多个第三方jar包
在源码下编译android工程使用到第三方jar包需要在Android.mk文件中添加java静态库的目录。主要用到了Android.mk文件中的两个变量。LOCAL_STATIC_JAVA_LIBRARIES 和 LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES,就是需要加载静态库。Android.mkLOCAL_PATH:= $(call my-转载 2016-03-17 11:19:30 · 3585 阅读 · 0 评论 -
Android系统开发之五:多线程编程详解(Handler ,Looper , Message , MessageQueue)
本期的多线程主题与Android相关,侧重讲解在Android中如何用好多线程,需要你有Java的多线程基础。首先我们思考几个问题,在Android应用中为什么要用多线程?为了解决哪些问题?或者为了实现哪些功能?有哪些好处?请先思考一分钟,再继续往下看。学习而不思考就像吃东西而不嚼,要么无法下咽,要么尝不出味道,同时都会影响消化吸收。控制一下你那脱缰野马一样的好奇心吧,先思考再往下看。转载 2016-04-07 16:29:30 · 792 阅读 · 0 评论 -
Android系统开发之四:多线程和Synchronized同步机制
线程: 创建线程的方法: a:定义Thread类的实例,并start(); b:实现Runnable接口,并作为参数传给Thread类的实例,然后start();不管线程是通过什么方式创建的,它都有一个优先级,调度器根据优先级来决定调度执行哪个线程,即让哪个线程使用CPU,调用Thread.setPriority()可以改变线程的优先级。thread.setPriority(转载 2016-03-31 11:06:49 · 5743 阅读 · 0 评论 -
Android系统开发之二:系统Jar包生成和Eclipse中引用
转自:http://blog.csdn.net/andyhuabing/article/details/8620743 1、编译生成系统jar包:编译写法如下:LOCAL_PATH := $(call my-dir)# the library# ============================================================i转载 2016-03-15 20:58:16 · 1311 阅读 · 0 评论 -
Android系统开发之一:添加系统级服务方法
说明:本次说的系统服务,是指捆绑在system_process进程中的服务。仔细阅读源码可以发现,在frameworks/base/services/java/com/android/server/SystemServer.java中添加了很多服务,什么熵信息、电量、wife等等服务,这些服务启动都在launcher之前,一般要继承Binder或者继承一个AIDL。下面试着来添加一个简单系统服转载 2016-03-15 19:28:30 · 4697 阅读 · 1 评论 -
Android init.rc解析
Android初始化语言由四大类声明组成:行为类(Actions),命令类(Commands),服务类(Services),选项类(Options).* 初始化语言以行为单位,由以空格间隔的语言符号组成。C风格的反斜杠转义符可以用来插入空白到语言符号。双引号也可以用来防止文本被空格分成多个语言符号。当反斜杠在行末时,作为折行符。* 以#开始(前面允许有空格)的行为注释行。*转载 2014-10-21 11:18:01 · 1347 阅读 · 0 评论 -
property_get/property_set
每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。 在系统初始化时,Android将分配一个共享内存区来存储的属性。这些是由“init”守护进程完成的,其源代码位于:device/system/init。“init”守护进程将启动一个属性服务。转载 2014-10-11 10:10:29 · 993 阅读 · 0 评论 -
Android 电源管理 -- wakelock机制
Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠, 可以被用户态程序和内核获得. 这个锁可以是有超时的 或者 是没有超时的, 超时的锁会在时间过去以后自动解锁。如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠.PowerManager.WakeLock 有加锁和解锁两种状态,加锁的方式有两种: 第一种是永久的锁住,这样的转载 2014-07-31 18:12:10 · 1014 阅读 · 0 评论 -
Android SystemProperties设置/取得系统属性的用法总结
android源码开发中,常常要用到一些全局标志或者说变量,这时候我们可以给android系统添加自己想要的属性。1.Settings.system这种系统属性我们经常用到,例如飞行模式的开启和关闭,我们就是去改变Settings.system.AIRPLANE_MODE_ON 的值。下面就介绍下我们怎样去定义一个系统属性。例如要添加一个属性名为“SILVAN_LIU”转载 2013-12-16 12:47:41 · 4979 阅读 · 0 评论 -
关机充电如何实现短按pwrkey灭屏
目前关机充电PWRKEY实现长按开机和短按亮屏功能,灭屏是根据BL_SWITCH_TIMEOUTS时间,自动灭屏的;如果需要实现PWRKEY主动灭屏,请按照如下方法修改: alps/mediatek/platform/mt6577/uboot/mt6577_bat.c 函数mt65xx_bat_init 1、修改: if (mt6577_detect_key(BACK转载 2014-04-23 17:58:30 · 1765 阅读 · 0 评论 -
Android framework系统默认设置修改
Launcher 总结:1、launcher的布局太居中,要想两边拉伸<\packages\apps\Launcher2\res\values\dimens.xml> <dimen name="apps_customize_pageLayoutPaddingLeft">40dp</dimen> <dimen name="a...原创 2014-05-07 15:13:43 · 29880 阅读 · 9 评论 -
android settings--简述获取部分系统属性
在android中,许多的系统属性都在settings应用当中进行设置的,比如wifi、蓝牙状态,当前本机语言,屏幕亮度等等一些相关的系统属性值。这些数据主要是存储在数据库中,对应的URI为:content://settings/system和content://settings/secure,这两个是主要的,目前也只是涉及到这两个数据库表的使用。接下来,就了解下settings应用中是如转载 2013-12-13 18:45:07 · 1445 阅读 · 0 评论 -
Android进程间通信(IPC)机制Binder简要介绍和学习计划
[转自 老罗http://blog.csdn.net/luoshengyang/article/details/6618363] 在Android系统中,每一个应用程序都是由一些Activity和Service组成的,一般Service运行在独立的进程中,而Activity有可能运行在同一个进程中,也有可能运行在不同的进程中。那么,不在同一个进程的Activity或者Servic...转载 2013-06-05 16:54:22 · 1209 阅读 · 0 评论