- 博客(19)
- 资源 (5)
- 收藏
- 关注
原创 Android framework Watchdog的监控过程
用android的MountService来分析Watchdog的注册和监控过程. 代码路径为:frameworks/base/services/java/com/android/server/MountService.java此Watchdog为软件Watchdog, 在Android Framework中处理的事情有:接收系统内部的reboot事件然后处理监控Syste
2013-01-07 15:52:07
2479
原创 Android媒体文件metadata是如何实现跟解码器结合获取的
一般获取媒体文件的metadata元数据的方法大概为1.MediaMetadataRetriever mr = new MediaMetadataRetriever();2.mr.setDataSource(file.getAbsolutePath());3.mr.extractMetadata(KEY...);4.mr.release();主要分析1,2 . 这是因为为该
2012-12-28 16:12:35
2458
原创 解剖Android USB MTP 的激活流程
废话少说, 先上两张时序图 , 图片有点大, 建议用新窗口打开或者另存到本地查看图1: UsbSettings的流程图2: property属性的触发事件流程好, 开始分析从图1开始, 当用户从Setting UI里面点了一下那个MTP的选择框后,引起一系列的操作,说白了,这里绕那么多个圈, 无非就是想发个消息通知UsbHandler而已, 然后就等待状
2012-12-28 11:39:20
19867
原创 重新解压打包android 根文件系统 ramdisk.img
1. ramdisk.img文件gzip压缩文件, 所以要用gunzip命令解压缩. 但是gunzip需要默认后缀名.gz才可以正常解压, 不然会被忽略对待.(源文件类型) ramdisk.img: gzip compressed data, from Unix2. 解压后名字会自动去掉.gz后缀,并重命名为ramdisk.img, 这时候文件类型为ramdisk.img: ASC
2012-12-24 11:06:24
1742
转载 Android init.rc解析
Android初始化语言由四大类声明组成:行为类(Actions),命令类(Commands),服务类(Services),选项类(Options). * 初始化语言以行为单位,由以空格间隔的语言符号组成。C风格的反斜杠转义符可以用来插入空白到语言符号。双引号也可以用来防止文本被空格分成多个语言符号。当反斜杠在行末时,作为折行符。 * 以#开始(前面允许有空格)的行为注释行。
2012-12-21 17:04:35
695
原创 Looper与Handler是如何通过Message发生关系的
经常看到Android的消息用法大概为:Looper.prepare()Looper.myLooper();xxxHandler = new Handler() { handleMessage(Message msg){...} }; Looper.loop();刚开始搞不清楚状况, 根据名字完全看不出有什么关系的两个类,到底如何进行消息传递呢? 只是
2012-12-19 10:23:25
872
原创 Android应用程序添加自定义的property属性
这是因为Android只有root, system, media用户才有权限写property, 而普通APP的用户ID是APP_XXX, 所以需要提升权限. 前提一定要基于Android源码来编译, 不能基于SDK编译Android.mk里面要添加LOCAL_CERTIFICATE := platformAndroidManifest.xml里面添加 p
2012-12-17 16:57:28
3343
原创 android 源码编译打包的apk出现accessed stale local reference问题
E/dalvikvm( 5564): JNI ERROR (app bug): accessed stale local reference 0x50100019 (index 6 in a table of size 1)E/dalvikvm( 5564): VM aborting这是因为外部ndk编译的jni使用错误,JVM找不到jni的class引用导致把jni_Env-
2012-11-15 18:03:12
7076
转载 java虚拟机理解
纲领 Java的运行时数据区为: A. 方法区 -----------(线程共有) B. 堆 -----------(线程共有) C. 虚拟机栈 -----------(线程私有) D. 本地方法栈-----------(线程私有) E. 程序计数器------
2012-11-15 15:20:47
588
原创 vim的配置
修改~/.vimrcset shiftwidth=4set tabstop=4set mouse=a"set selection=exclusive"set selectmode=mouse,keyset ai! "自动缩进"set ignorecase"set noerrorbells " 去掉滴滴声音set incsearch "搜索时逐字符高亮
2012-11-14 13:37:24
554
原创 Uubuntu 配置网络固定IP
1. 修改 /etc/network/interfaces 文件添加下面内容auto eth0iface eth0 inet staticaddress 192.168.168.114netmask 255.255.255.0network 192.168.168.1broadcast 192.168.168.255gateway 192.168.168.1
2012-11-14 13:26:48
747
原创 Android 4.0.3 源码编译中添加外部jar包和外部so到apk的方法
懒得写那么多,直接把Android.mk贴上来。 把关键字用*号代替,免得暴露了身份,哈哈。LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_STATIC_JAVA_LIBRARIES := slf4j ksoap2 epublib pdfclown android-support-v4 LOCAL_
2012-11-12 09:53:06
2870
原创 AppWidget完美恢复后台程序方法
这方法是从Home 的widget点击后恢复到后台程序,而不是重新起一个新的activity。假如程序没有运行过,就会重新起动。 反正就不会起两次就是了。 Intent intent; PendingIntent pendingIntent ; Log.d(TAG, "##set welcome activity");
2012-11-09 14:28:40
1366
转载 adb ?????? no permission 这种问题的解决方法
设置usb权限因为ubuntu这样的系统都是默认以非root身份在运行的,要使用usb调试,需要sudo支持。$ lsusbBus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
2012-11-09 13:57:02
1094
原创 Ubuntu 12.04 配置minicom
sudo minicom -s选择 Serial port setup, 此时所示图标在“Change which setting”中,键入“A”,对应的应该是/dev/ttyS0对波特率,数据位和停止位进行配置,键入“E”,波特率选为115200 8N1 硬/软件流控制分别键入“F”“G”并且都选NO.
2012-11-09 13:50:34
833
原创 在Android 的adb shell里面单独起一个activity的方法
以MTP的界面为例am start -n com.android.settings/com.android.settings.UsbSettingsam start -n 包名/包名.类名或者am start -n 包名/.类名
2012-11-09 13:46:22
1010
原创 Ubuntu 12.04 编译Android 4.0.3 的环境配置
本来不喜欢写博客的,编译了android 4.0.3发现了一大堆错误,网上找了一堆的更改源码啊,Android.mk的解决方法,虽然可以编译成功,但都有点坑爹的成分,为了不误人子弟就分享出来吧。根本原因是因为gcc的版本太高,ubuntu 12.04的系统带版本是4.6 的要求严格了,稍微有点不注意就报错。 解决方法就是降级到gcc4.4.还有就是默认的linux系统调用的头文件路径不是标
2012-11-09 13:32:35
1524
原创 Android Media Scanner Mechanism Analyze
ArchitectureFigure2-1 AsFigure 2-1. MediaScannerReciver start up at anytime where receiveintent ACTION_BOOT_COMPLETED, ACTION_MEDIA_MOUNTED orACTION_MEDIA_SCANNER_SCAN_FILE. Cause on that spen
2010-07-08 18:12:00
7248
原创 linux 目录架构
/ 根目录 /bin 常用的命令 binary file 的目录 /boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解压缩所需 RAM
2010-05-31 10:53:00
638
Android媒体文件metadata是如何实现跟解码器结合获取的
2012-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人