编译adb
① Android SDK Tools,Platform-tools,Build-tools分别有什么作用
platform-tools包含开发app的平台依赖的开发和调试工具,包括 adb、fastboot等
android sdk里的各目录作用
AVD Manager.exe:虚拟机管理工具,用于建立和管理虚拟机。
SDK Manager.exe:sdk管理工具,用于管理、下载sdk、sdk工具,能及扩展工具
tools目录:包括测试、调试、第三方工具。模拟器、数据管理工具等。
build-tools目录:编译工具目录,包含了转化为davlik虚拟机的编译工具。
包括
aapt(Android Asset Packaging Tool):编译应用程序的资源文件(包括AndroidManifest.xml和你的Activities的xml文件),生成R.java文件,这样你就可以从你的java代码中引用资源。
aidl:把.aidl 接口转换成java接口.
dx:转化.class中间代码为dvlik中间代码,所有经过java编译的生成.class文件都需要此工具进行转换,最后打包进apk文件中.
dexmp:mp devlik中间代码
platform-tools目录:包含开发app的平台依赖的开发和调试工具。
包括
adb:android调试工具
fastboot:boot工具
platforms/<android-version>目录:包括android的平台。包含在android.jar库中。你必须指一个平台为你的编译目标。
system-images目录:编译好的系统映像。模拟器可以直接加载。
sources目录:androidsdk的源码目录
samples目录:sdk例子
② 如何使用android sdk tools
关键是了解每个工具的用途,具体的用法 ,到时候用到的再慢慢学!
Android模拟器(Android Emulator )
它是在你的计算机上运行的一个虚拟移动设备。你可以使用模拟器来在一个实际的Android运行环境下设计,调试和测试你的应用程序。
Android调试桥(Android Debug Bridge (adb) )
Adb 工具可以让你在模拟器或设备上安装应用程序的.apk文件,并从命令行访问模拟器或设备。你也可以用它把Android模拟器或设备上的应用程序代码和一个标准的调试器连接在一起。
层级观察器 (Hierarchy Viewer )
层级观察器工具允许你调试和优化你的用户界面。它用可视的方法把你的视图(view)的布局层次展现出来,此外还给当前界面提供了一个具有像素栅格(grid)的放大镜观察器,这样你就可以正确地布局了。
9-patch
Draw 9-patch工具允许你使用所见即所得(WYSIWYG)的编辑器轻松地创建NinePatch图形。它也可以预览经过拉伸的图像,高亮显示内容区域。
Eclipse IDE Android 开发工具插件(Android Development Tools Plugin for the Eclipse IDE)
ADT插件大大扩展了Eclipse集成环境功能,使得生成和调试你的Android应用程序既容易又迅速。如果你使用Eclipse,ADT插件可以让你难以置信地加快开发Android应用程序的 速度。
你可以从Eclipse IDE内部访问其它Android开发工具。例如,ADT可以让你直接从Eclipse访问DDMS工具的很多功能—屏幕截图,管理端口转发(port-forwarding),设置断点,观察线程和进程信息。
它提供了一个新的项目向导(New Project Wizard),帮助你快速生成和建立起新Android应用程序所需的最基本的文件。
它使得构建Android应用程序的过程变得自动化以及简单易行。
它提供了一个android代码编辑器,可以帮助你为Android manifest和资源文件编写有效的XML。
有关ADT插件的更多详细信息,包括安装指令,可参考Android 开发环境安装。如果你想看一个用法范例的屏幕截图,可参考Hello Android。
Dalvik 调试监视器服务(Dalvik Debug Monitor Service (ddms))
这个工具集成了Dalvik(为Android 平台定制的虚拟机(VM)),能够让你在模拟器或者设备上管理进程并协助调试。你可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观察堆(heap)和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。
Android Asset Packaging Tool (aapt)
Aapt工具可以让你创建包含Android应用程序二进制文件和资源文件的.apk文件。
Android接口描述语言(Android Interface Description Language (aidl))
可以让你生成进程间的接口的代码,诸如service可能使用的接口。
sqlite3
这个工具能够让你方便地访问SQLite 数据文件。这些数据文件是由Android 应用程序创建并使用的。
Traceview
这个工具可以将你的Android 应用程序产生的跟踪日志(trace log)转换为图形化的分析视图。
mksdcard
帮助你创建磁盘映像(disk image),你可以在模拟器环境下使用磁盘映像来模拟外部存储卡(例如SD 卡)。
dx
Dx gongju 将.class字节码(bytecode)转换为Android字节码(保存在.dex文件中) 。
UI/Application Exerciser Monkey
Monkey是在模拟器上或设备上运行的一个小程序,它能够产生为随机的用户事件流,例如点击(click),触摸(touch),挥手(gestures),还有一系列的系统级事件。你可以使用Monkey来给你正在开发的程序做随机的,但可重复的压力测试 。
activitycreator
一个可以产生Ant build 文件的脚本,你可以使用它编译你的android 应用程序。如果你正在Eclipse上开发,并使用ADT插件,你不必使用这个脚本。
③ 如何编译一个精简的Android系统
本次试验使用的android源码是4.2,编译的架构是mini-mips。
一、所做的工作
1、修改build/target/proct/mini.mk,去掉一些不必要的模块(例如Phone、DownloadManager等)
2、修改SystemServer.java,屏蔽一些service,让系统能够启动起来(例如,Location Manager、Telephony Registry)
3、修改dalvik/vm/native/dalvik_system_Zygote.cpp,注释掉因为检查不到外部存储而导致dalvik abort的地方 (这是googel的一个bug,在2013年1月份已解决,如果用这以后的代码不用修改此处)
4、修改WindowManagerService.java,把发送BOOT_TIMEOUT消息的时间改为0(之前为30秒)
二、系统优化后的效果(验证工作均在mips模拟器上进行)
1、节省运行内存,下面是全编译与mini编译的内存使用状态的对比
1)full build
MemTotal: 499360 kB
MemFree: 242064 kB
2)mini build
MemTotal: 499360 kB
MemFree: 395192 kB
2、缩短开机启动时间
在虚拟机上的启动时间
1)full build-29秒
2)mini build-14秒
3、只启动home程序,其余的应用程序均被移除
三、保留android的开发环境
1、adb,ddms,apkinstall等,都能正常工作
2、在eclipse中编写的android应用程序能够运行在该mini-android之上
四、开机自动启动指定应用程序
本次测试使用Gallery.apk应用程序,修改其源码后可以实现随系统的启动而自动启动的功能。
④ 如何编译出mac下的adb
使用adb命令先得配置adb环境,下载后Android sdk,往 .bash_profile里导入你的Android sdk对应目录,export PATH=${PATH}:your_sdk_path。
没有.bash_profile的话就创建一个
1
touch .bash_profile
创建完成后打开
1
open -e .bash_profile
然后输入你的对应路径,保存退出。
输入source .bash_profile,更新刚配置的环境变量
⑤ 如何默认打开user版本 debug 选项,默认打开adb 连接
需要修改code。
如下2个属性需要更改为如下默认值。
ro.debuggable=1 //打开debug选项
ro.adb.secure=0//关闭鉴权
⑥ 如何编译boot和android
1. 执行:apt-get install mingw32安装了linux-windows交叉编译环境mingwin 2. 执行:. build/envsetup.sh 3. 执行choosecombo,选择各个参数 这两步设置了一些编译参数和环境变量,按照你正常编译Android的设置即可。 4. 执行:make USE_MINGW=y adb 5. 执行:make USE_MINGW=y fastboot 最后到out/host/windows-x86/bin目录下就能找到你刚刚编译的东西了。
⑦ 4.0自带 其他apk,编译出错,adb push无作用,不知道为什么
其实这个是由于android中代码检查所限制的,可以做如下修改:/build/core/Makefile注释掉以下几行即可:define check-proct--files$(if $(filter %.apk, $(1)),$(error \ Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT instead!))endef
⑧ 为什么android源码编译出来的adb是动态库
例如:你不想编译music进image中,你就在该文件里PRODUCT_PACKAGES :=这一项下的Music删除就可以了同理,你想把自己的app编译进image中,你先写好编译用的 Android.mk 文件,然后去到上面所说的文件里在 PRODUCT_PACKAGES :=这一项添加对应的app包名一般来说,只要改这么一个文件就足够了。但是如果以上编译后发现还是编译到了image里面,那么它很有可能是一个已经编译好的apk文件预装到 image 里面去了,也是以我的sdk为例,进入 device/产品目录/common/apk 下看看有没有.apk文件,我的sdk里面这个目录下的.apk文件是全部预装到 system/app 里面的还有一个目录:/device/产品目录/common/preinstallapk 这个目录里的apk也是预装到image里面去,只是并不是预装到 system/app 而已也就是说,你还要看看你不想编译进image里的app是不是预装进去,如果是预装进去的话,只要在对应目录下把该apk文件删除了就好了希望这些能帮到你!
⑨ 如何在Linux下编译Windows版本的adb和fastboot
1. 执行:apt-get install mingw32
安装了linux-windows交叉编译环境mingwin
2. 执行:. build/envsetup.sh
3. 执行choosecombo,选择各个参数
这两步设置了一些编译参数和环境变量,按照你正常编译Android的设置即可。
4. 执行:make USE_MINGW=y adb
5. 执行:make USE_MINGW=y fastboot
最后到out/host/windows-x86/bin目录下就能找到你刚刚编译的东西了。
⑩ 在电脑上为android设备编写python脚本的好用编译器
Android模拟器上安装Python解释器
我了解的有两种方法可以下载并安装Android软件。一个是通过Android直接访问网络,下载安装;另一个是通过PC下载,然后通过模拟器工具ADB安装。这里介绍第二种方式。
下载Python for Android解释器;
解释器框架,点击下载:http://code.google.com/p/android-scripting/downloads/detail?name=sl4a_r3.apk&can=2&q=
python解释器,点击下载:http://code.google.com/p/android-scripting/downloads/detail?name=PythonForAndroid_r4.apk&can=2&q=
安装Python for Android解释器;
设置环境变量,加入Android模拟器工具 adb.exe所在的路径。
打开cmd运行界面,输入adb。你会看到如下信息:
输入adb device。
输入adb install –s <解释器框架所在路径>;比如adb install –s c:/sl4a_r3.apk。安装完毕后,在你的android中就会出现SL4A图标。
同上的步骤,再把python解释器安装上。比如adb install –s c:/PythonForAndroid_r4.apk。安装完毕后,在你的Android中就会出现Python for Android图标。
在Android中点击Python for Android。进去后,有一个install的button,点击安装。这个程序会通过网络,下载到所需要的所有程序包。
测试Python for Android解释器;
当一切安装妥当后,在Android中点击SL4A图标。
在出现的列表中点击hello_world.py(或者其他的脚本);界面左上角会出现一个小的SL4A的图标,同时界面也会出现“hello world!”
如果你的Android运行结果如上所述,证明你的安装成功了,继续下一步。
Step4 : 编写可在Android模拟器运行的Python Script并执行
编写Python Script For Android;
传递Python Script到Android模拟器;
假设你编写的python脚本存放在c:/Hello_world.py中
打开cmd界面,运行adb push <local> <remote>;例如,adb push c:/Hello_world.py /sdcard/sl4a/scripts/Hello_wold.py
在Android模拟器上运行Python Script;
在Android上运行脚本,你会看到“Hello world!”出现在屏幕上。 (如同step3的结果)
如果你的运行结果如上所述,那么恭喜你,你已成功上传并运行了你的第一个android python脚本,继续下一步。