note1:Android查看源代码的版本号
1. 编译的时候在终端中一开始就会打印出来:
PLATFORM_VERSION:2.3.1
2. 直接去make文件中去看:
build\core\version_defaults.mk  // 搜索该文件中的 PLATFORM_VERSION值
 
note2:编译cm9时OutOfMemoryError
在编译cm9代码的时候到了Signing package总是会java.lang.OutOfMemoryError:
虚拟机参数在 vendor/cm/tools/squisher设定
终端执行
sed -i 's/Xmx512m/Xmx1024m/g' vendor/cm/tools/squisher
当然,堆大小看你心情设置了
 
note3:android:sharedUserId=”android.uid.system”
使用此sharedUserId的时候需要platform签名,mk文件中设置
拿过来一个apk,如果里面用了sharedUserId,那么需要先签名成platform,然后push进去reboot即可
install -r会提示错误**** has no signatures that match those in shared user android.uid.system; ignoring!
 
note4:android系统给进程分配内存情况(4.0 ics)
adb shell getprop | grep heap
[dalvik.vm.heapgrowthlimit]: [64m]
[dalvik.vm.heapsize]: [256m]
[dalvik.vm.heapstartsize]: [8m]
 

  输入命令之后回查到上述几个结果 

 

  [dalvik.vm.heapstartsize]: [8m]:给进程分配的起始heap=8m 

 

  [dalvik.vm.heapgrowthlimit]: [64m]:进程最大可分配到64m 

 

  [dalvik.vm.heapsize]: [256m]:单个虚拟机可分配的最大内存=256m 

 

    

 

  更改上述参数可以在build.prop修改 

 

  build.prop在system下,pull出来修改后再push回去,reboot即可 

 

    

 
note5:debug系统源码(进程system_process)
 

  1.eclipse中导入你的源码 

 

  2.ddms中选中要debug的进程,这里选中system_process即可 

 

  3.项目中选择debug as - debug configurations 

 

  4.双击romote java application新建一个配置(如果之前有了,直接点击debug就行) 

 

  5.host:localhost,port:8700,点击debug即可 

 

  这时在ddms中查看系统进程,发现前面爬上一只小绿虫子 

 

    

 
note6:申请apiKey
 
a.ubuntu
 

   1.$ keytool -list -keystore ~/.android/debug.keystore(提示输入密码,可以直接确定) 
 
 
 

   然后显示认证指纹 (MD5):******************** 
 
 
 

   2.打开https://developers.google.com/android/maps-api-signup?hl=zh-CN 
 
 
 

   网页最下面会有 
 
 
 
I have read and agree with the terms and conditions (printable version)
My certificate's MD5 fingerprint: 
 

   不过很有可能这里显示的是“网页无法显示/打开”,如果能打开,那么填写指纹提交即可,如果不能打开,需要进行第三步 
 
 
 

   3.修改ubuntu的hosts 
 
 
 

   sudo gedit /etc/hosts (编辑hosts,具体内容百度,现在203.208.46.180 google-developers.appspot.com可用,但不保证以后也可用) 
 
 
 

   sudo /etc/init.d/networking restart (然后重启网络) 
 
 
 

   这时候刷新网页应该就可以继续了 
 
 

    

 
note7:logcat基本参数
 

  -v time 输出时间 

 

  -b radio 查看radio log 

 

  -s tag1 tag2…… 查看多个tag的log 

 

  -s tag:priority 查看至少为priority级别以上的tag的log 

 

    

 
note8:ICS模拟器不支持电脑键盘输入
 

  最近发现建立ICS模拟器后,无法用电脑键盘直接输入文本 

 

  解决办法:编辑模拟器,在hardware中添加“keyboard support”,value=yes,保存,重启即可 

 

    

 
note9:4.0+模拟器中,屏幕下方3大虚拟按键显示(Home,Back,Recent Apps)
 

  新建一个4.0模拟器是没有上面几个按键的。 

 

  解决办法:编辑模拟器,在hardware中添加“Hardware Back/Home keys”,value=no,保存,重启即可 

 

    

 
note10:在eclipse中debug应用入口页面
 

  先在eclipse中在要debug的地方打断点 

 
包名/.类名即可 

 

  比如:adb shell am start -D com.android.su.agent/.activity.MainActivity 

 

    

 
 
 note11:命令行重启/关闭手机 

 

  adb shell reboot(重启) 

 

  adb shell reboot -p(关闭) 

 

    

 
note12:使用apktool反编译apk
 

  标准的framework内嵌在apktool中,但是一些厂商使用自己的资源,这个时候直接反编译就会出错 

 

  我们需要使用apktool把这些资源安装,然后再反编译 

 

  这些资源就去你的手机里面pull一个就可以了 

 
$ apktool if framework-res.apk
I: Framework installed to: /home/su1216/apktool/framework/1.apk


$ apktool d Settings.apk 
I: Baksmaling...
I: Loading resource table...
I: Loaded.
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /home/su1216/apktool/framework/1.apk
I: Loaded.
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Done.
I: Copying assets and libs...
 所需资源不一定都是 
 framework-res.apk,比如htc需要com.htc.resources.apk 

 
note13:下载adt插件
 
由于android官网经常无法加载,所以有时候需要离线下载adt插件
 
想要下载ADT-xx.x.x.zip,可以直接访问下面地址,也可以使用下载工具 

 
 
 

   http://dl.google.com/android/ADT-22.6.2.zip 
 
 
 
 
note14:一些密码存储位置
 
 

   WI-FI密码 
  
 
 

   data/misc/wifi/bcm_supp.conf或data/misc/wifi/wpa_supplicant.conf 
 
 
 

   锁屏密码 
  
 
 

   data/system/password.key:密码锁屏密码 
  
 
 

   data/system/gesture.key:手势锁屏密码 
 
 
 
 
  
 
 
 
   note15:app内置字体 
  
 
  

    app中可以内置字体,但是不能在xml中进行配置,只能动态设置。 
  
 
  
Typeface tf = Typeface.createFromAsset(getAssets(),  "fonts/BPreplay.otf");
TextView tv = (TextView) findViewById(R.id.CustomFontText);
tv.setTypeface(tf); 
    
 
  note16:app录屏 
  
android从4.4开始支持录屏 
  
adb shell screenrecord filepath 
  
screenrecord可以指定视频尺寸(--size),比特率(--bit-rate),录制时间(--time-limit,默认为180秒)等。 
  
 
 

     
 
 

 
 
 note17:app中查看当前进程名 

 

  read文件/proc/self/cmdline即可