Android源码下载与编译之emulator与adb

2023-05-16

    最近碰到一个问题,就是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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android源码下载与编译之emulator与adb 的相关文章

随机推荐

  • 如何将Set转换为Array?

    本文翻译自 xff1a How to convert Set to Array Set seems like a nice way to create Arrays with guaranteed unique elements but i
  • 小米2013校园招聘笔试题

    题目 xff1a 一个数组里 xff0c 除了三个数是唯一出现的 xff0c 其余的都出现偶数个 xff0c 找出这三个数中的任一个 比如数组元素为 1 2 4 5 6 4 2 xff0c 只有1 5 6这三个数字是唯一出现的 xff0c
  • NVIDIA Jetson NX 模组初始化(刷机+扩容)

    项目场景 xff1a 老师让我学习使用NVIDIA Jetson NX做项目开发 于是自己研究一下 由于第一次接触 前期踩坑用了两周时间 特此记录 1 刷机 使用的是NVIDIA Jetson NX 模组 xff0c 网上买大约4 5k x
  • centos+docker设置网易163镜像加速

    镜像加速 鉴于国内网络问题 xff0c 后续拉取 Docker 镜像十分缓慢 xff0c 我们可以需要配置加速器来解决 xff0c 我使用的是网易的镜像地址 xff1a http hub mirror c 163 com 新版的 Docke
  • WSL(ubuntu2204)xfce4安装中文环境和fcitx5框架及中文输入法

    安装中文语言包 sudo apt install language pack zh hans 配置中文显示 首先运行如下命令配置 locale sudo vi etc locale gen 找到 zh CN UTF 8 UTF 8 并取消注
  • detectron2: An object named ‘XXXX‘ was already registered in ‘META_ARCH‘ registry

    根据该作者 https blog csdn net qq 20793791 article details 107924375 所述的方法 xff0c 我又想到了 看我的目录文件是否是 python package xff0c 突然发现虽然
  • ubuntu20.04中python2和python3切换

    Ubuntu 20 04 LTS已经移除Python2 xff0c 默认安装python3 xff0c 但是很多时候还是会经常用到python2 7版本 xff0c 这里首先单独安装python2 7 xff0c 然后配置python2和p
  • ubuntu18.04 pycorrector安装

    今天尝试对语音识别转录后的文字进行纠错 xff0c 然后就试了一下pycorrector xff0c 在安装pycorrector的时候遇见了下面的问题 xff1a base pip install pycorrector Looking
  • libxcb-xinerama.so.0: cannot open shared object file: No such file or directory

    今天在ubutnu 18 04上装了mayavi 但是写代码可视化点云的时候出现了下面的情况 xff1a QLibraryPrivate loadPlugin failed on 34 home eric anaconda3 envs po
  • 生产者/消费者模式(转载)

    简介 在实际的软件开发过程中 xff0c 经常会碰到如下场景 xff1a 某个模块负责产生数据 xff0c 这些数据由另一个模块来负责处理 xff08 此处的模块是广义的 xff0c 可以是类 函数 线程 进程等 xff09 产生数据的模块
  • 【飞控学习】APM和PX4飞控源码下载及安装

    对于无人机开发的专业人员来说 xff0c APM和PX4是现今市面上最强大的2个开源无人机飞控 学习和查看他们2者的源码 xff0c 将会提高我们对整个无人机的姿态解算和控制的深入理解 现在我们就来下载2者的源码和安装查看2者源码的软件 1
  • Skye无人机换遥控接收机遇到的坑

    Skye的接收机是可以直接用天地飞对码的 xff0c 如果要更换接收机的话需要支持sbus协议或者要有个转码器 xff0c 要更换接收机的话要特别注意 xff0c skye主板上集成了一个反相器 xff01 如果用单片机自己做转码器的话直接
  • opencv算法移植到嵌入式平台(1): opencv工程打包成库

    1 将要用到的opencv 相关的库打包 xff0c 利用你要移植的平台第三方编译器进行交叉编译 xff0c 因为如果你利用其它编译器即使编译通过了 xff0c 在另外的工程调用时也会提示错误 xff0c 一般会报错误 xff1a unde
  • 值得你关注的Android6.0上的重要变化(一)

    伴随着众多新特性和新功能 xff0c Android6 0 xff08 API level 23 xff09 在系统和API上都有着诸多的改变 本文着重介绍几个关键变化 xff0c 以帮助你理解这些改变对你的APP产生的影响 一 运行时权限
  • 编译开源LibreOffice的Android版本——开源Office文档查看器

    项目近期需要用到文档查看器 xff0c 现有的WPS之类确实比较好用 xff0c 无奈还需要对应用做些处理 xff0c 只好寻找开源的实现 开源的文档查看器主要两种方式 xff0c 一种是完整的Android版本实现 xff0c 直接拿来即
  • Linux下利用信号的异步串口中断响应

    先悔过一下 因为一个月前就在学习这个 xff0c 当时解决的差不多了 xff0c 想着抽个空再记录这些 xff0c 没想到这么短的时间就已经忘得 差不多了 xff0c 真是不好 xff0c 应该趁热打铁 废话不多说了 xff0c 这里主要介
  • 值得你关注的Android8.0(Android O)上的重要变化

    刚适配完Android7 0还没多久 xff0c 就看到Google官方推出的Android8 0 xff08 Android O xff09 的开发者预览版新闻 xff0c 我的心情你可以好好想想 对于上层应用开发者的我来说 xff0c
  • Android应用流量统计——NetworkStatsManager使用

    在没有Root的情况下 xff0c Android应用流量统计在6 0之前一直没有太好的办法 xff0c 官方虽然提供了TrafficStats xff0c 但其主要功能是设备启动以来流量的统计信息 xff0c 和时间信息无法很好的配合 最
  • Java处理http协议相关初步(二)——httpserver

    这里的HttpServer xff0c 并不是哪里专门下载的类库了 xff0c 而是在JDK1 6中自带的 xff0c 在com sun net httpserver包中 xff0c 提供了简单的较高层次意义上的Http ServerAPI
  • Android源码下载与编译之emulator与adb

    最近碰到一个问题 xff0c 就是Android的emulator只能打开16个 xff0c 在网上找到文章有说adb连接数量是16个的 xff0c 但是没说这个avd也只能16个 xff08 当然是在一台电脑上 xff09 于是 xff0