自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 2435

原创 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 2420

原创 解剖Android USB MTP 的激活流程

废话少说, 先上两张时序图 , 图片有点大, 建议用新窗口打开或者另存到本地查看图1: UsbSettings的流程图2: property属性的触发事件流程好, 开始分析从图1开始, 当用户从Setting UI里面点了一下那个MTP的选择框后,引起一系列的操作,说白了,这里绕那么多个圈, 无非就是想发个消息通知UsbHandler而已, 然后就等待状

2012-12-28 11:39:20 19759 7

原创 重新解压打包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 1701

转载 Android init.rc解析

Android初始化语言由四大类声明组成:行为类(Actions),命令类(Commands),服务类(Services),选项类(Options).  * 初始化语言以行为单位,由以空格间隔的语言符号组成。C风格的反斜杠转义符可以用来插入空白到语言符号。双引号也可以用来防止文本被空格分成多个语言符号。当反斜杠在行末时,作为折行符。  * 以#开始(前面允许有空格)的行为注释行。

2012-12-21 17:04:35 671

原创 Looper与Handler是如何通过Message发生关系的

经常看到Android的消息用法大概为:Looper.prepare()Looper.myLooper();xxxHandler = new Handler() {     handleMessage(Message msg){...} };  Looper.loop();刚开始搞不清楚状况, 根据名字完全看不出有什么关系的两个类,到底如何进行消息传递呢? 只是

2012-12-19 10:23:25 856

原创 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 3280

原创 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 7050

转载 java虚拟机理解

纲领  Java的运行时数据区为:     A.     方法区   -----------(线程共有)    B.     堆       -----------(线程共有)    C.     虚拟机栈 -----------(线程私有)   D.     本地方法栈-----------(线程私有)    E.      程序计数器------

2012-11-15 15:20:47 567

原创 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 529

原创 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 661

原创 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 2845

原创 AppWidget完美恢复后台程序方法

这方法是从Home 的widget点击后恢复到后台程序,而不是重新起一个新的activity。假如程序没有运行过,就会重新起动。 反正就不会起两次就是了。 Intent intent; PendingIntent pendingIntent ; Log.d(TAG, "##set welcome activity");

2012-11-09 14:28:40 1329

转载 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 1062

原创 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 805

原创 在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 976

原创 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 1499

原创 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 7217

原创 linux 目录架构

/     根目录 /bin       常用的命令 binary  file  的目录 /boot      存放系统启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst      GRUB设置 /boot/vmlinuz      内核 /boot/initrd          核心解压缩所需 RAM

2010-05-31 10:53:00 623

Android编程权威指南《第3版》+源码

Android编程权威指南《第3版》PDF电子版、范例源码。作者是美国的Bill Phillips、Brian Hardy

2018-08-31

MediaMetadataRetriever工作时序图

MediaMetadataRetriever工作时序图 由于文件有点大,传到博客会被缩小,很难看

2012-12-28

Android媒体文件metadata是如何实现跟解码器结合获取的

Android媒体文件metadata是如何实现跟解码器结合获取的 这是MediaMetadataRetriever 工作过程的时序图

2012-12-28

Android系统原理与开发要点详解

对android的framework描述的都很清晰, 很不错的一堆课件

2012-12-06

android的apk之反编译.pdf

手把手教你如何反编译一个android的应用程序

2012-11-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除