Menu Home

android构建工具

Android控制生成ODEX

如果没有指定DISABLE_DEXPREOPT,那么user版将生成odex,其他版本不会生成odex文件。 相关文件在build/core/main.mk ifneq (true,$(DISABLE_DEXPREOPT)) ifeq ($(user_variant),user) ifeq ($(HOST_OS),linux) WITH_DEXPREOPT := true endif endif endif 如果user版不想生成odex,那么需要定义 DISABLE_DEXPREOPT := true 如果eng版要生成odex,那么需要定义 WITH_DEXPREOPT := true 如果想单独控制某一应用是否生成odex,可以在应用的Android.mk中定义 WITH_DEXPREOPT := true

反编译Android APK

呃~~~ 反编译一般都是作学习用的-_-# OS:Android 4.4.2 HOST: OS X 需要的工具 baksmali / smali: 把odex转换成dex dex2jar: 把dex转换成jar jd-gui: 反编译jar 具体步骤 这里我尝试反编译SystemUI,先使用adb pull把SystemUI.apk和SystemUI.odex从手机中取出到本地的tmp目录中(什么是odex可以google一下)。 整个反编译的过程如下: odex —-> dex —-> jar —-> java odex —-> dex java -jar baksmali-2.0.3.jar -a 19 -x SystemUI.odex -d . 参数说明: -a : API Level, 这里4.4.2的API Level为19 -x : 反编译 -d […]

repo 1.12.4 gpg key错误

自从repo升级到 1.12.4后,repo init的时候就一直报错: repo 1.12.4 gpg: Signature made Wed Oct 2 00:44:27 2013 CST using RSA key ID 692B382C gpg: Can’t check signature: public key not found error: could not verify the tag ‘v1.12.4’ 查了半天原来是android doc没有更新,解决方法是不要使用 curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo 下载的repo,使用下面的网址即可: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

adb常用命令

设置标准输出和标准错误输出 Android系统默认把标准输出和标准错误输出(system.out和system.err)定向到/dev/null。使用下面的命令更改: $ adb shell stop $ adb shell setprop log.redirect-stdio true $ adb shell start 查看内存分配情况 $ adb shell dumpsys meminfo <package name> 重新安装apk adb install -r 包名 卸载apk adb uninstal 包名 注意这里的参数是包名,即AndroidManifest中package的属性值。

mac os下编译android源代码

Mac OS: 10.7.5 在MacOS上编译android源码的前提是你所使用的文件系统必须是 大小写敏感 的。下面的内容旨在说明如何在不破坏原有文件系统的基础上建立一个供编译android使用的文件系统。 检查你现有的文件系统 依次打开 GO —-> Utilities —-> Disk Utility.app查看当前磁盘的格式,如下图: 在左侧栏中选中你希望在上面编译android的那块磁盘,查看右侧栏中的“Format”一项,如果format格式中带有“Case-sensitive”字样,那么恭喜你,你不需要再做任何操作即可开始编译android源码了,否则,继续往下操作。 确定磁盘空间 当然最方便的方法是把整个磁盘都重新格式成大小写敏感的文件系统,然后重新安装系统。但那样做的成本比较高并且很浪费时间。这里要谈的是不破坏原有系统的前提下,创建一块只供编译android的文件系统。首先需要确保你磁盘的剩余空间在30G以上,编译整个android大概会使用掉25G空间(Google官方显示至少25G)。 创建磁盘镜像 打开一个Terminal,输入如下命令: $ hdiutil create -type SPARSE -fs ‘Case-sensitive Journaled HFS+’ -size 60g YOU_FOLDER/android.dmg 这条命令在你所指定的文件夹中(YOU_FOLDER)创建了一个大小写敏感的可以自增长的最大为60GB的镜像。查看你的文件夹出现了新文件android.img.sparseimage。接下来把这个镜像挂载到系统: $ hdiutil attach ./android.dmg.sparseimage -mountpoint /Volumes/android 这条命令把上一步中创建的android.dmg挂载到了/Volumes/android下,以后这里就是我们编译android的地方。如果你希望每次开机的时候系统自动挂载这个镜像,你可以把下面的命令放到你的~/.profile中。 $ hdiutil attach YOU_FOLDER/android.dmg.sparseimage -mountpoint /Volumes/android 接下来就是把down下来的android源码拷贝到/Volumes/android目录下进行编译。

使用命令行工具构建android apk

新建工程 查看构建目标 输入下面的命令查看所以可构建目标: $android list targets 可能的输出: Available Android targets: ———- id: 1 or “android-3” Name: Android 1.5 Type: Platform API level: 3 Revision: 4 Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P ABIs : armeabi ———- id: 2 or “Google Inc.:Google APIs:3” Name: Google APIs Type: Add-On Vendor: Google Inc. […]

android编译错误 : android the correct version is 1.6

android编译错误 : android the correct version is 1.6 OS : ubuntu10.04  64bit 问题 android编译过程中报错: You are attempting to build with the incorrect version of java. Your version is: java version “1.6.0_22”. The correct version is: Java SE 1.6. 解决 从java官方地址http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u31-download-1501634.html 下载Java SE Development Kit 6 Update 31文件 移到/opt目录下 执行 chmod +x […]