- 博客(28)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注

原创 Android SystemServer学习
Linux内核启动后,Android系统启动有4个步骤;(1)init进程启动(2)Native服务启动(3)System Server及Java服务启动(4)Home启动Init进程启动后,将根据init.rc及initXXX.rc的内容执行一系列的命令,包括创建mount目录,安装文件系统,设置属性,启动adb,systemserver,mediaserver
2011-08-22 11:29:49
5853

原创 Binder学习三 MediaServer -- 实例
Q&A1.Multiple call of same binder object from 15 threads,will the binder service handle request in 15 threads?Answer: No.Explain:The
2011-08-15 16:50:28
1587

原创 Binder学习一 ServiceManager初始化
Binder内核设备作用:1.实现跨进程IPC调用2.跟踪跨进程binder对象的引用计数。包括映射远程进程中的对象引用到真实对象的宿主进程中,以及确保被远程对象使用的对象不被删除。binder用户空间代码作用:在binder所在进程中维护一个线程池,用来
2011-08-15 16:48:09
1764

原创 Binder学习二 MediaServer
以MediaServer为例,进程初始化如下:1.创建进程中所有Service实例2.注册service到service manager3.创建线程池,等待处理binder事件MediaServer处理原理如下图所示:上图中,media
2011-08-15 16:47:53
2155

原创 ContentProvider原理分析二 MediaProvider publish
本文仅讨论ContentProvider的Publish过程。在Android启动后,会自动launch application,如果Application用到ContentProvider则会在handleBindApplication()时publish该Co
2011-08-05 10:10:48
4743

原创 ContentProvider 原理分析一
本文目标:以MediaProvider为例,想搞清楚调用ContentResolver访问各个ContentProvider的调用过程。Java code:getContentResolver().query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,null,null)具体调用过程是1.通过Conten
2011-07-29 17:15:01
3954
1
原创 Build sample addon in android5.1.1
I met error when try to build sample sdk addon after I downloaded android5.1.1:make -j8 PRODUCT-sample_addon-sdk_addon... make: * No rule to make target images/source.properties', needed byout/ho
2016-05-03 16:23:55
1084
原创 Video的thumbnail抽取算法
How to generate video thumbnail:注意生成thumbnail时,传入getFrameAtTime的时间是-1frameworks/base/media/java/android/media/ThumbnailUtils.java 158 public static Bitmap createVideoThumbnail(Strin
2014-02-09 12:34:14
3748
原创 Java代码编译问题
看代码时发现一个奇怪的问题,即一个类中定义为final的成员居然可以被其他类直接引用:如下类ServiceRecord中定义的成员deliveredStarts,被类ActiveServices直接引用:class ServiceRecord extends Binder {... final ArrayList deliveredStarts = new A
2013-05-12 20:15:12
967
原创 Linux下执行命令时利用脚本自动输入密码
近来repo sync时经常需要多次输同样的密码:sudo apt-get install expect使用如下脚本来实现执行repo sync命令时自动输入口令:#!/bin/bashPASS="you psd"expect -c "set timeout -1spawn -noecho repo syncexpect { "*password:
2013-05-08 10:34:53
3944
原创 Stagefright中增加Codec支持
方法1:注册Plugindevice/qcom/common/media/media_codecs.xml ... 如果是Decoder则在xm
2013-04-10 13:39:03
2669
原创 GS3 4.2.1利用adb安装apk失败问题
GS3更新到4.2.1后,安装自编应用均出现错误INSTALL_FAILED_INTERNAL_ERROR:解决办法:1.Setting -> Security -> Verify Apps去掉选择框的选择。2.Setting -> Security -> Unknown sources去掉选择框的选择。当安装源代码编译的apk后再次安装Eclipse编译出的apk出现
2013-03-06 16:27:21
3975
原创 Android属性:所设属性值为何在重起后被清除
问题:发现adb sehll setProp所设属性值在下次重起后被清除adb shell setprop testing.mediascanner.skiplist /storage/sdcard1/test结论:1.必须采用persist.开头的属性名才能永久保存。2.如果具有root权限,可以直接编辑/system/build.prop并加入需要永久保存的属性
2012-08-16 08:58:15
15345
3
原创 Java类中打印this导致手机不能启动问题
问题1:发现在Handler中加类似Log.d(TAG,"create handler 1 "+ this);导致系统不能启动。 public class Handler { public Handler() { if (FIND_POTENTIAL_LEAKS) { final Class klass = getClass();
2011-11-04 09:05:23
1025
原创 system_server crash现象研究
现象:当system server进程crash时,发现zygote进程会被杀掉,此后Zyogote进程和system server被重新启动。分析:在init解析init.rc时,Zygote进程作为一个服务被定义,且被声明为自动重启。因此一旦Zygote进程退出,则init会收到子进程退出信号从而重新启动zygote服务,进而Zygote启动System Server。同样,在Sy
2011-11-03 09:56:28
10628
原创 Android Java应用程序调用跟踪
Sun已经提供java platform debugger architecture (jpda),其中有示例程序演示如何跟踪应用程序,在此基础上进行更改后可以跟踪Android ap,点此下载。Java Platform Debugger Architecture(JPDA:Java平台调试架构) 由Java虚拟机后端和调试平台前端组成 1.Java虚拟机提供了Java调试的功
2011-11-03 09:55:41
2497
原创 apk破解实战
近日使用某在线听歌软件,有不少儿童故事不错,但在线听经常出现时断时续情形,而软件要求积分大于1500才可整页下载。要满足积分条件需要手动安装其推荐的数十个应用,简直是坑爹。故决定破解之。假定要破解apk的名字为mytest.apk,则破解步骤如下:步骤 1:得到resource及smali文件。1)得到apktool工具在http://code.google.c
2011-11-03 09:54:01
56288
原创 Android SystemServer学习之二
在Sytem Server运行时,会启动多个Java线程。第一个线程用于其它Service的消息处理,第二个线程用于ActivityManagerService和ActivityThread的消息处理,第三个用于WindowManagerService及KeyGuard TokenWatcher的消息处理。ActivityManagerService.javapublic
2011-11-03 09:52:27
1443
原创 android.process.media crash后现象研究之二
做实验如下:C:\>adb shell ps |grep android.process.mediaapp_14 817 197 107556 24456 ffffffff afd0c74c S android.process.mediaF:\send_file>adb shell kill 817F:\send_file>adb logcat发现: 杀掉
2011-10-28 16:57:49
4140
原创 android.process.media crash后现象研究之一
android.process.media crash后现象研究在ActivityManagerService启动android.process.media进程时,在启动进程后会调用attachApplicationLocked,在其中利用Binder的linkToDeath方法来接收进程退出消息。在进程crash后,如果进程中存在Service在运行或者有Provider等待运行
2011-10-28 16:57:40
8509
原创 Android消息处理探秘
下图为Android消息处理机制顺序图:由图可知,第一步通过调用Looper.prepare()来创建Looper和MessageQueue java对象,MessageQueue java类通过保存单向链表头mMessages来遍历所有消息,注意此单向链表按时间
2011-10-08 14:30:50
1733
原创 Tablet不断重启原因分析
现象:启动后,可以进入主界面。但是过几分钟自动重启。以后不断重复此现象。分析:1、手机如果重启,会在/data/system/dropbox 留下开机信息,可以查看次类文件生成的时间标来了解手机重启的时间情况。另外,系统会自动记录最后一次开机/重启的原因到 /pr
2011-09-28 14:47:41
2786
原创 Service启动过程过程详解
Service的几种启动方式:1、startServicepublic class myActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); startService(new
2011-09-23 14:57:35
4530
原创 实例分析:android.process.media由于调用进程crash而退出
Log:09-13 11:46:42.093 14778 17309 I dalvikvm: Ljava/lang/RuntimeException;: No memory in memObj09-13 11:46:42.093 14778 17309 I dalv
2011-09-16 15:27:52
3719
原创 Idle/Home architecture and code structure
在SystemServer.java启动后,将在ActivityManagerService.systemReady()里运行Home应用,参见Android SystemServer学习一文。frameworks/base/services/java/com
2011-09-07 10:58:15
1502
原创 ubuntu下执行cts
某日需要在Ubuntu下执行cts,却发现设备不能被adb访问如下:$ adb devices* daemon not running. starting it now on port 5037 ** daemon started successfully *
2011-09-02 11:27:34
1341
原创 使用5,7,12做加减运算,如果用最少步数得到任意数n
问题描述: 用5,7,12做加减运算,要求用最少步数得到任意数n 数学模型: i * 5+ j * 7+k * 12=n n为任意正负整数min(|i|+|j|+|k|) 分析:对于-11到11,可手工算出1 = +3 x 5 -2 x 72 = -1 x 5 +1 x 73 = +2 x 5
2011-06-27 15:32:00
1428
原创 MediaScanner locale学习
Windows-1253 http://msdn.microsoft.com/zh-cn/goglobal/cc305146.aspxRussia Windows 1251 http://msdn.microsoft.com/zh-cn/goglobal/cc305144.aspxWindows # Code Page 1256 (WinArabic) http://
2011-05-08 17:38:00
1178
ubuntu dpkg错误如何解决?
2015-11-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人