Android源码开发
iteye_17349
这个作者很懒,什么都没留下…
展开
-
Ubuntu18.04LTS on Windows for xTs test
Ubuntu on Windows原创 2022-08-23 15:55:14 · 840 阅读 · 0 评论 -
Android Launcher桌面图标的加载和存储
1) 桌面安装之后有5个默认的图标:search、contacts、browser、phone、message。它们是系统自带的,那它们是在哪儿存储的?什么时候加载的?2) 在res/xml目录下的default_workspace.xml文件中定义了它们。里面还定义了其他一些常用应用。定义格式如下: packageName="com.android.contacts"指定该应用...原创 2011-02-22 14:19:54 · 514 阅读 · 0 评论 -
Android 最新下载托管
一、准备阶段俗话说:工欲善其事必先利其器,下面开始准备配置环境。本教程只推荐有一定Linux知识的同学参考,以下内容及描述均建立在上述问题的基础上,怎样安装系统及其他问题请google 或者百度。OS:Ubuntu 10.04 有人说为什么不用 11.04,因为那个版本不是长期演进的版本。Google推荐使用10.04的版本,其他版本的Linux 也可以使用。JDK:Java 1.6 ...原创 2011-11-03 18:31:31 · 345 阅读 · 0 评论 -
Android dumpsys 命令解析
Android has an interesting command called dumpsys to dump some system information. Even described on adb manual I think that some points should be reinforced. In order to get the complete status j...原创 2011-11-10 14:56:37 · 174 阅读 · 0 评论 -
Android framworks分析
1.目录树/framework/base/api /framework/base/awt/framework/base/build/framework/base/camera 关 于camera的HAL接口库。最终生成native共享库libcamera.so ,编译时根据是否定义USE_CAMERA_STUB来决定系统是否有Camera硬件支持。...原创 2011-11-11 11:20:08 · 136 阅读 · 0 评论 -
Android systemserver 解析
System Server是Android系统的核心,他在Dalvik虚拟机启动后立即开始初始化和运行。其它的系统服务在System Server进程的环境中运行。/base/services/java/com/android/server/SystemServer.javaJava代码 /** * This method is called fr...原创 2011-11-11 12:31:48 · 240 阅读 · 0 评论 -
Android GDI之SurfaceFinger
SurfaceFinger按英文翻译过来就是Surface投递者。SufaceFlinger的构成并不是太复杂,复杂的是他的客户端建构。SufaceFlinger主要功能是:1) 将Layers (Surfaces) 内容的刷新到屏幕上2) 维持Layer的Zorder序列,并对Layer最终输出做出裁剪计算。3) 响应Client要求,创建Layer与客户端的Surfac...原创 2011-11-11 14:36:05 · 416 阅读 · 0 评论 -
Android GDI之SurfaceFlinger之动态结构示意图
SurfaceFlinger对象建立过程示意 1 SurfaceSession的建立 客户端请求建立Surface时,首先在要与SurfaceFlinger建立一个Session,然后再Session上建立一个Connection通过概念返回Bclient对象。WindowManagerService在添加第一个窗口前会检查SurfaceSession是否建立,...原创 2011-11-11 14:40:12 · 97 阅读 · 0 评论 -
Android wifi模块解析
什么是WIFIWIFI是一种无线连接技术,可用于PC,PDA,手机等终端。WIFI的目的是改善基于IEEE802.11标准的无线网络产品之间的互通性,也就是说WIFI是基于802.11标准的,但WIFI不等同无线网络。 android平台下的...原创 2011-11-30 11:11:59 · 352 阅读 · 0 评论 -
Android OTA功能的实现和修改
Android OTA空中升级的文档不少。但是多是介绍原理的和分析代码的。原理我就不说了。这里记录一下我在项目中实现的工作,和问题总结。工作流程:见附件图片 update.xml文件放在服务器上,当客户端请求的参数正确时,返回相应的信息。update.xml的内容,根据需要可以添加;Md5需要校验下载后包的完整性。updatepath为实际的下载地址至...原创 2012-02-15 10:35:05 · 399 阅读 · 1 评论 -
Android RIL 总体架构介绍
当我们开始编写Android的电话应用程序的时候,如果需要进行电话拨号,可以进行如下调用:ITelephony tpCallModule = (ITelephony)ITelephony.Stub.asInterface(ServiceManager.getService("phon"));tpCallModule.dial("13800138000");而对于短信的应...原创 2011-04-13 16:02:27 · 262 阅读 · 0 评论 -
Android 待机流程解析
以下分析基于android2.2的google源码。 开机启动时,首先执行PhoneWindowManager.systemReady()(这之前的流程不分析)。调用KeyguardViewMediator.onSystemReady()进行待机锁屏及解锁逻辑。 KeyguardViewMediator是整个待机解/锁屏业务的调度器,负责调度锁屏界面的相关动作及查询解锁屏状态...原创 2011-04-07 21:07:20 · 173 阅读 · 0 评论 -
Android EGL接口解析
EGL 是 OpenGL ES 和底层 Native 平台视窗系统之间的接口。本章主要讲述 OpenGL ES 的 EGL API ,以及如何用它创建 Context 和绘制 Surface 等,并对用于 OpenGL 的其他视窗 API 做了比较分析,比如 WGL 和 GLX 。本章中将涵盖如下几个方面: EGL 综述 EGL 主要构成(...原创 2011-02-23 10:26:52 · 307 阅读 · 0 评论 -
Android 获取源码
背景:在Linux环境下(虚拟机为 VirtualBox)获取Android源代码的时候,使用命令:repo init -u git://android.git.kernel.org/platform/manifest.git 时提示下列错误: fatal: Unable to look up android.git.kernel.org (port 9418) (Name or serv...原创 2011-09-29 20:02:36 · 198 阅读 · 0 评论 -
Android recovery流程解析
恢复出厂设置流程概括:一. 设置模块中进行恢复出厂设置操作,系统一共做了两件事:1. 往 /cache/recovery/command 文件中写入命令字段: 2. 重启系统二. 重启系统会必须进入 recovery 模式进入 recovery 模式的几种方式1. 通过读取 /cache 分区中文件 /cache/recovery/comm...原创 2011-10-20 17:21:02 · 242 阅读 · 0 评论 -
Android 一些简单设置
1开机图片: android-logo-mask.png android-logo-shine.png 这两个图片一个在上一个在下 ./out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes/assets/images/android-logo-shin...原创 2011-02-28 16:19:32 · 105 阅读 · 0 评论 -
Android Audio System之AudioPolicyService和Audi
AudioPolicyService是Android音频系统的两大服务之一,另一个服务是AudioFlinger,这两大服务都在系统启动时有MediaSever加载,加载的代码位于:frameworks\base\media\mediaserver\main_mediaserver.cpp。AudioFlinger主要负责管理音频数据处理以及和硬件抽象层相关的工作。本文主要介绍Audi...原创 2011-03-01 18:38:10 · 143 阅读 · 0 评论 -
Android InputMethod设置
Android的输入法框架比价复杂。从进程的角度来讲,相关功能主要分布在下面三个位置:客户端应用是一个包含有图形界面的应用,如地址本。图形界面上包含有能够接收输入的编辑框,如TextView。输入法模块提供软键盘,将用户在软键盘上的按键输入根据某种算法(如Zi, T9,国笔等)转换成单词,然后传递给客户端应用。目录development/samples/SoftKeyboard下提...原创 2011-03-02 15:13:15 · 550 阅读 · 0 评论 -
Android registerContentObserver 接口监视数据库变化
以launcher app为例说明,此功能的核心是ContentResolver 的notifyChange 和 registerContentObserver 接口。Launcher.java的一个方法(在onCreate方法里调用),这里即是为要监视的对象注册Observer。我这里讨论如何监视数据库里数据的变化,所以要监视的对象自然是数据库了, LauncherS...原创 2011-03-04 10:37:30 · 291 阅读 · 0 评论 -
Android 开机启动过程代码分析
开机过程中无线模块的初始化过程;如果sim卡锁开启,或者pin被锁住的时候,会要求输入pin或者puk,但是这个解锁动作必须在系统初始化完成以后才能进行。(图形系统都还没有初始化怎么输入密码阿?)当系统初始化完成以后会调用 wm.systemReady()来通知大家。这时候该做什么就做什么。 开机过程中无线模块的初始化过程: rild 调用参考实现 Reference-ri...原创 2011-03-25 17:12:35 · 135 阅读 · 0 评论 -
AndroidAudio播放:竞争Audio之Audio Focus的应用
Android是多任务系统,Audio系统是竞争资源。Android2.2之前,没有内建的机制来解决多个程序竞争Audio的问题,2.2引入了称作AudioFocus的机制来管理对Audio资源的竞争的管理与协调。本文主要讲解AudioFocus的使用。按照AudioFocus的机制,在使用Audio之前,需要申请AudioFocus,在获得AudioFocus之后才可以使用Audio;如...原创 2012-04-11 09:46:18 · 71 阅读 · 0 评论 -
Android 编译文件使其支持wml
前不久发现android默认没有放开对wml的支持,这样就导致某些网站无法访问,从网上搜索到的文档都说只要ENABLE_WML=1就可以支持,但是我把ENABLE_WML设置成1之后,就出现了编译通不过的情况,经过一番调试,最终可以编译并且实现了对wml的支持。 2. Windows必备条件把Webkit编译通过了,具体参考webkit.org上的说...原创 2012-04-16 15:25:22 · 112 阅读 · 0 评论 -
Android wifi captive portal 验证
只要是国内的用户,基本上刷完5.0版本后如果没挂上V P N,信号及WIFI图标上都会显示有一个感叹号,是因为Google在5.0上加入了一个验证机制,移动网络与WIFI都会连接到google的服务器上,连接到google服务器上就为了去验证这个网络是否需要登录才能使用,如果所连接的WIFI是需要登录的,那么WIFI的图标便会显示感叹号了,但国内会显示却是因为连不上google。首先,要知...原创 2016-02-23 20:38:54 · 1400 阅读 · 0 评论 -
Android selinux安全策略
基础知识SEAndroid在架构和机制上与SELinux完全一样,考虑到移动设备的特点,所以移植到SEAndroid的只是SELinux的一个子集。SEAndroid的安全检查覆盖了所有重要的方面包括了域转换、类型转换、进程相关操作、内核相关操作、文件目录相关操作、文件系统相关操作、对设备相关操作、对app相关操作、对网络相关操作、对IPC相关操作。Policypolicy是整...原创 2016-06-21 17:16:11 · 387 阅读 · 0 评论 -
Android 多语言 多地区对应表
Arabic, Egypt (ar_EG) Arabic, Israel (ar_IL) Bulgarian, Bulgaria (bg_BG) Chinese, PRC (zh_CN) Chinese, Taiwan (zh_TW) Croatian, Croatia (hr_HR) Czech, Czech Republic (cs_CZ) Danis...原创 2014-05-13 17:09:27 · 400 阅读 · 0 评论 -
Android UiAutomator 自动化测试
一、一个BUG引发的问题 如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”。这个问题我们如何验证呢?我想,最好的方式应该是自动化测试。 那么,自动化测试可以完成哪些任务呢? 简单的说,那些重复性的测试工作,都可以交给自动化完成: 1、设置手机的语言 2、添加、删除、收藏联系人 3、拨号、挂断 ...原创 2014-07-04 17:39:17 · 227 阅读 · 0 评论 -
Android 动态库死机调试方法
android系统中调试Java非常容易,一般遇到错误都在logcat中打印出错时函数的调用关系, 而C库中出错时只看到一些二进制信息,使用gdbserver调试环境搭建又比较复杂。方法一: 下在介绍一个简单的调试库的方法,当然需要有so库的源代码 举例 a) 错误信息如下,它表示了出错时的函数调用关系(下面调上面的) I/DEBUG ( 634): ...原创 2013-03-05 13:54:02 · 143 阅读 · 0 评论 -
Android 签名信息读取
public void getSingInfo() { try { PackageManager manager=getPackageManager() PackageInfo packageInfo=manager.getPackageInfo(getPackageName(), P...原创 2014-08-22 17:32:59 · 175 阅读 · 0 评论 -
虚拟按键 振动效果
[DESCRIPTION]Setting->情景模式->使能振动选项,TP虚拟按键无振动效果 [SOLUTION] 修改tp driver中对于虚拟按键在normal mode下的上报方式为坐标上报,如果直接在TP driver中去上报key, android framework不会走振动的流程,此时如果想要实现虚拟按键振动,可以修改PhoneWindowManager...原创 2015-05-12 11:50:44 · 658 阅读 · 1 评论 -
Android 之 日期时间 时区同步
系统设置--日期和时间--自动确定日期和时间:智能机 提供2类日期和时间同步方式:使用网络提供时间使用GPS提供时间以及”自动确定时区“的选项。Android 之 时间和日期的自动同步那就是说,我们可以通过如下3种方式自动设置我们的时间和日期: A、可以分别从SIM1和SIM2卡的无线通信网络(2G/3G/4G)获得 B、通过WiFi连接到Internet网络获...原创 2015-05-13 15:47:55 · 642 阅读 · 0 评论 -
Android CTS windows环境下测试
Windows下CTS测试步骤1.获取CTS 测试用例1).从Google下载编译好的CTS测试用例url : http://source.android.com/compatibility/downloads.html2).或者编译CTSi.到源码目录 source build/envsetup.shii.make ctsiii.结果目录:~out/host/linu...原创 2015-09-08 11:36:06 · 470 阅读 · 0 评论 -
Android 多语言开发
第一部分 多语言定制的机制1、ICU4C简介ICU4C(ICU for C, http://site.icu-project.org/ ) 是ICU在C/C++平台下的版本, ICU(International Component for Unicode)是基于"IBM公共许可证"的,与开源组织合作研究的, 用于支持软件国际化的开源项目。ICU4C提供了C/C++平台强大的...原创 2012-08-16 18:37:39 · 94 阅读 · 0 评论 -
#if、#ifdef、#if defined之间的区别
#if的使用说明#if的后面接的是表达式#if (MAX==10)||(MAX==20) code...#endif它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!)#if defined的使用#if后面接的是一个宏。#if defined (x)...原创 2013-05-17 15:19:27 · 779 阅读 · 0 评论 -
Android sqlite3 详解
SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供一个使用sqlite3命令的简要说明。 启动sqlite3程序,仅仅需要敲入带有SQLite数据库名字的"sqlite3"命令即可。如果文件不存在,则创建一个新的(数据库)文件。然后sqlite3程序将提示你输入SQL。敲入SQ...原创 2012-09-13 22:13:47 · 82 阅读 · 0 评论 -
Android 移动终端camera 防偷*拍设置
目前市面上的所有移动终端几乎都有camera应用,但android原生系统在静音模式下拍照是没有声音的,大部分国家的终端都有法规限制,如防止偷*拍,不管什么模式下拍照都应该发出快门音,针对此问题只要修改android原生frameworks/base/services/camera/libcameraservice/cameraservice.cpp中playSound函数即可,修改后的方法如下:...原创 2012-04-26 10:35:05 · 176 阅读 · 0 评论 -
android编译dex-preopt
对于android2.3编译时候选择下面的情况,既可以对dex进行preopt优化了。如何从apk生成odex在BoardConfig.mk中加入# Enable the optimized DEXWITH_DEXPREOPT=true或者直接修改system.prop# ODEXdalvik.vm.verify-bytecode=true...原创 2012-05-11 18:48:24 · 1046 阅读 · 0 评论 -
Android emulated sdcard
如果要添加 emulated sdcard ,需要一下几个内容修改: 1. patch: diff --git a/init.rc b/init.rc index bd6c22e..3a55e6a 100755 --- a/init.rc +++ b/init.rc @@ -184,11 +184,15 @@ on post-fs-data ...原创 2013-08-12 21:46:14 · 311 阅读 · 0 评论 -
Android CRT Screen 电视效果
Android 2.3 对关屏进行了优化,增加了一种类似于关闭电视的效果 Android系统默认使用的关屏效果是fade,要激活旧CRT效果,需要修改以下文件,关闭fade效果。 frameworks/base/core/res/res/values/config.xml <!-- If this is true, the screen w...原创 2012-05-17 11:12:56 · 178 阅读 · 0 评论 -
Android 之响应的系统设置的事件
1、Configuration类专门用于描述手机设备上的配置信息,这些配置信息既包括用户特定的也包括系统的动态设备配置。程序可调用Activity的如下方法来获取 系统的Configuration对象:Configuration cfg=getResources().getConfiguration();String screen = cfg.orientation == Config...原创 2012-05-24 18:17:32 · 105 阅读 · 0 评论 -
Android 浏览器设置中的搜索引擎
更改浏览器设置中的搜索引擎 1. 需求 将浏览器设置中的搜索引擎更改为XXXX, 谷歌搜索,百度搜索。默认XXXX选中。 2. 分析源码 我们先找到浏览器的设置界面代码, com.android.browser.BrowserPreferencesPage.java 构造界面部分代码在onCreate函数中 protected void ...原创 2012-04-16 16:37:59 · 900 阅读 · 0 评论