最近碰到一个问题,就是Android的emulator只能打开16个,在网上找到文章有说adb连接数量是16个的,但是没说这个avd也只能16个(当然是在一台电脑上)。于是,看看官方文档,自己从源码里找原因吧。不过先说明的是官方对于avd的数量说是没有限制的,自己可以看看。后面我也会简单记录一下我所了解到的和简单的分析情况。下面主要介绍自己下载Android源码与单独编译emulator和adb的过程。
Android源码是我在出差的时候下的,直接把Android源码的全部同步下来,反正是晚上开了就没有管。记得原来在Windows下用Git单独下的时候,那个麻烦的,而且如果对Android源码树没有很好的了解的话,即使那样下载下来,用起来也是个问题。再说还有编译呢,不是说不可以,但是这个工作量还不如你直接上Linux,所以建议安装个虚拟机(如果直接Linux那就更方便了,官方建议Ubuntu10.04,更高也可以)还是老老实实下载,官方给出了详细的下载文档,懒得找的话,我给个链接:http://source.android.com/source/downloading.html;简要说明一下步骤:
1.(1)repo目录
创建运行repo(其实就是包装好的git)的目录,执行如下命令(弱弱的说下,可以把目录建在自己想要的地方)
$ mkdir ~/bin
$ PATH=~/bin:$PATH
(2)下载repo
(弱弱的补充下,没安装curl可以先apt-get下,注意repo的目录)
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
(3)创建源码目录并下载
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ repo init -u https://android.googlesource.com/platform/manifest
($ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 选择执行,如果你已经确定自己想要下载的版本)
$ repo sync
(好吧,看着多线程下载!估计要等很久了)
2.编译环境搭建
(1)按照官网安排是先搭建环境,再下源码的。不过咱们编译的时候再搭建环境也不错啊。Python、git等的版本不说,首先提的是JDK版本(JDK 6 if you wish to build Gingerbread or newer; JDK 5 for Froyo or older. 如果只是想我这篇文章的目的,主要是adb和emulator的话,那么建议直接下载JDK6,如果确实需要编译整个目录而且还是2.1及以前的,那么按推荐JDK1.5)就用1.6吧,然后运行安装(chmod +x 包名.bin),环境变量设置在~/.bashrc文件中,这样登录后就自动运行了,末尾追加如下:
#set java environment
export JAVA_HOME=/usr/bin/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$J上面的路径换掉,然后试下source ~/.bashrc和java
(2)下载必要包
看到官方文档说是建议在64位系统上编译,这个。。。。。。。,我没有条件,只好现在我的虚拟机上继续了。然后是安装必要的包,说实话,具体需要哪些我是真的不知道,看着原来有人发的文章(参考1),编译2.1的,就照着人家给的下载了:
apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
因为,我是需要在Linux下编译windows下用的adb等,所以需要mingw32,这个看官方推荐的包和参考2可以知道。目前来看,还不用下官方推荐的那么多,可能还没有编译Android系统内部源码的原因。
(3)编译
一般的文章说到这里,都是在源码目录下 . build/envsetup.sh和choosecombo两个命令,(当然后面是要运行的,而且默认的就可以)然后make,我这里当然不用这样啦。我只是要那两部分,也就是说两个模块,直接模块编译。执行上面那两条命令。好了,准备工作好了,我们
make USE_MINGW=y emulator 就可以了。再来个
make USE_MINGW=y emulator-arm 和(先运行make adb不然会出现No rule to make target `out/host/linux-x86/bin/acp'的问题。)
make Use_MINGW=y adb
可以再out目录host下找到生成的.exe文件和两个.dll文件,自己拿去tools下覆盖(或者是plateform-tools)试试啦。我要说的是那么这个模块的名称你是怎么找到的???LOCAL_MODULE,还有那个参数自己在.mk文件夹下看看搜搜,其实我本来也是不知道的,人家写了,自己找找,不过还是希望那些知道的人把怎么知道的说出来,先谢谢啦!
要上图么,好吧,要来真相,只给生成的目录下的图片:
最后注明,本文出处:http://blog.csdn.net/w7849516230/article/details/7580947联系邮箱w.7849516230@163.com,因为发现搜索的时候,转载我的网站比我的原文好找,而且还没有出处,我比较讨厌这样,自己看别人的文章的时候也希望找到出处,最好还能讨论下的。
参考文:
1.Ubuntu 10.04环境下载&编译Android-2.1_r2源代码【20110527更新说明】 http://blog.csdn.net/jackyu613/article/details/5778646
2.在Linux下编译Windows版本的adb和fastboot http://kaiyuan.blog.51cto.com/930309/555422
分享到:
相关推荐
编译源码并运行后,利用Android Debug Bridge (ADB)和Logcat工具进行调试和日志分析,以便找出潜在的问题。 10. AOSP贡献: 如果你有兴趣为AOSP做出贡献,理解Git的工作流和提交规范是必不可少的。通过向官方邮件...
在Android开发过程中,深入理解源码的编译与调试对于提升开发效率和解决问题至关重要。本文将详细介绍Android源码的编译流程、调试方法以及如何在Eclipse环境下进行源码开发。 首先,Android的文件系统结构对开发者...
- 下载Android内核源码:`linux-2.6.23-android-m5-rc14.tar.gz` - 解压到 `~/Android/kernel` 目录下。 #### 三、配置内核 接下来,我们需要配置内核参数来满足特定需求。 1. **获取内核配置文件** - 使用...
3. build:这个目录包含了编译Android系统所需的全部脚本和工具,是进行整个Android源码编译的核心目录。 4. cts:CTS即兼容性测试套件(Compatibility Test Suite),用于确保设备符合Android兼容性标准。 5. ...
这样可以确保编译出的应用程序与 Android 33 的特性和接口兼容。 Android SDK 的主要组件包括: 1. **Platform Tools**:包含了用于调试、安装应用和管理设备的工具,例如 ADB (Android Debug Bridge)、Fastboot ...
在搭建好环境后,你需要下载Android内核源代码,例如linux-2.6.23-android-m5-rc14.tar.gz,并确保内核版本与所用模拟器版本匹配。解压缩源代码并放置在适当的目录下,例如/Android/kernel。 接下来,获取内核编译...
10.1.3 绑定本地Service并与之 通信 377 10.1.4 Service的生命周期 381 10.2 跨进程调用Service (AIDL服务) 382 10.2.1 AIDL服务简介 382 10.2.2 创建AIDL文件 383 10.2.3 将接口暴露给客户端 383...
- Android内核源代码:从Google的Android项目下载对应版本的内核源码,例如`linux-2.6.23-android-m5-rc14.tar.gz`。 - Android SDK:用于模拟器运行和adb工具,用于与模拟器交互。 2. **搭建交叉编译环境**: -...
5. **Android Emulator**: 通过SDK,你可以下载并使用Android模拟器,它允许开发者在没有物理设备的情况下测试应用程序。对于API级别30,模拟器将支持Android 11的功能和性能,方便开发者进行多设备兼容性测试。 6....
### Android内核编译知识点详解 #### 一、Android内核概述 Android作为一个开源的操作系统,其核心基于Linux内核。Google所提供的内核源代码不仅仅包括标准Linux内核的部分,还包括了与虚拟处理器QEMU和模拟硬件...
EmulatorShell提供了对Android系统的命令行访问,例如安装APK、执行ADB命令等。 ### 8. 性能优化 为了提升模拟器的性能,可以考虑以下几点: - 开启KVM支持,利用硬件虚拟化技术。 - 调整内存分配,给予足够的资源...
4. **Android调试桥(ADB,Android Debug Bridge)**:连接开发计算机与Android设备,用于传输文件、执行命令和进行远程调试。 5. **开发者文档(Documentation)**:提供了详细的API参考和教程,指导开发者使用...
1. **启动Android模拟器**:运行emulator并等待启动,设置相关选项以便调试。 2. **推送BusyBox**:将BusyBox工具通过adb推送到模拟器的/data目录。 3. **创建文件系统**:在模拟器中执行各种操作,构建所需的文件...
5. **Android Debug Bridge (ADB)**: ADB是一个命令行工具,用于连接计算机与运行Android系统的设备,实现数据传输、安装应用、调试和控制设备。开发者可以通过ADB进行日志查看、进程管理、设备状态检查等操作。 6....
6. **Command-line Tools**:包括`adb`(Android Debug Bridge)、`fastboot`、`dx`等,用于与设备交互、安装应用、传输文件等。 7. **开发者文档**:详细的API参考、教程和最佳实践指南。 **Systrace** Systrace...
1. **克隆或下载项目**:获取"android-auto-headunit-master"源码。 2. **环境配置**:确保安装了Android Studio和必要的SDK工具,以及Kotlin编译器。 3. **导入项目**:在Android Studio中打开项目,配置好构建设置...
- **使用emulator获取root文件系统**:通过启动Android模拟器,并使用ADB工具将BusyBox推送到模拟器中的/data分区,然后使用BusyBox命令打包出系统、数据和配置文件等部分。 6. **修改Linux内核源码**:根据目标...
本教程将引导你完成环境搭建、模拟器使用和编译文件的基本操作,让你能够顺利地开始Android源码开发之旅。 首先,你需要下载Android源码。通常,这可以通过访问Android开源项目(AOSP)官方网站获取。下载完成后,你...