ubuntu 编译android,安卓手机装ubuntu

本篇文章给大家谈谈ubuntu 编译android,以及安卓手机装ubuntu对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

Ubuntu18.04 从头开始编译 Android Native WebRTC

本文详细记录Mac下使用PD虚拟机安装ubuntu18.4桌面版,编译Android Native WebRTC的过程。

如果仅需使用WebRTC,官方提供的预编译包即可满足需求,无需手动编译:

通过Android Studio添加依赖:implementation'org.webrtc:google-webrtc:1.0.+'

安装配置Ubuntu虚拟机,下载Ubuntu镜像,手动选择下载好的iso文件进行安装,设置用户名密码,指定虚拟机文件名和位置,等待安装完成。

安装Parallels Tools,解决无法直接安装的问题,创建安装文件后重启虚拟机,设置环境变量配置代理,使用主机sockes提供的http代理,虚拟机网络模式使用默认的共享网络。

下载WebRTC代码,安装必要软件,使用git clone命令下载源码,配置gclient代理,下载代码后通过gclient sync同步代码。

执行fetch命令下载源码和开发环境,设置gclient代理,使用gclient sync命令同步代码,下载和同步过程需要稳定网络环境。

使用GN和NINJA构建系统编译代码,执行gn gen和ninja命令构建所有目标和example app,生成apk文件和aar文件,完成编译打包过程。

在Android Studio中使用aar文件替换预编译依赖,按照推荐方法导入Android Studio代码,生成的gradle文件参考示例进行补全。

编译过程需要稳定网络环境,注意代码庞大复杂,整个构建系统采用了gn和ninja,确保编译成功并替换预编译依赖。

简述android源代码的编译过程

编译Android源代码是一个相对复杂的过程,涉及多个步骤和工具。下面我将首先简要概括编译过程,然后详细解释每个步骤。

简要

Android源代码的编译过程主要包括获取源代码、设置编译环境、选择编译目标、开始编译以及处理编译结果等步骤。

1.获取源代码:编译Android源代码的第一步是从官方渠道获取源代码。通常,这可以通过使用Git工具从Android Open Source Project(AOSP)的官方仓库克隆代码来完成。命令示例:`git clone `。

2.设置编译环境:在编译之前,需要配置合适的编译环境。这通常涉及安装特定的操作系统(如Ubuntu的某些版本),安装必要的依赖项(如Java开发工具包和Android Debug Bridge),以及配置特定的环境变量等。

3.选择编译目标:Android支持多种设备和配置,因此编译时需要指定目标。这可以通过选择特定的设备配置文件(如针对Pixel手机的`aosp_arm64-eng`)或使用通用配置来完成。选择目标后,编译系统将知道需要构建哪些组件和变种。

4.开始编译:设置好环境并选择了编译目标后,就可以开始编译过程了。在源代码的根目录下,可以使用命令`make-jN`来启动编译,其中`N`通常设置为系统核心数的1~2倍,以并行处理编译任务,加快编译速度。编译过程中,系统将根据Makefile文件和其他构建脚本,自动下载所需的预构建二进制文件,并编译源代码。

5.处理编译结果:编译完成后,将在输出目录(通常是`out/`目录)中生成编译结果。这包括可用于模拟器的系统镜像、可用于实际设备的OTA包或完整的系统镜像等。根据需要,可以进一步处理这些输出文件,如打包、签名等。

在整个编译过程中,还可能遇到各种依赖问题和编译错误,需要根据错误信息进行调试和解决。由于Android源代码庞大且复杂,完整的编译可能需要数小时甚至更长时间,因此耐心和合适的硬件配置也是成功编译的重要因素。

如何用ubuntu 12.04 32bit 编译android 4.4.4

系统环境

系统:Ubuntu12.04 64位系统。

源码:Android4.4源码。

选择Ubuntu12.04,是因为在14.04上没能折腾成功,在上面兼容32位程序的配置有点烦。12.04必须要用64位的,编译Android4.4时需要64位环境,同时要兼容32位程序,折腾。

步骤

配置jdk6

Android官方给的步骤是用OpenJdk,实测是不行的。网上找到

这个网址有需要的jdk,下载自解压安装包。自解压后在当前目录下生成一个jdk的目录,打开/etc/environment,增加自己的jdk

bin目录到PATH里面。同时新增如下环境变量:

CLASSPATH=/path/to/your/local/jdk/dir/lib

JAVA_HOME=/path/to/your/local/jdk/dir

然后执行如下命令,设置系统的默认jdk:

$ sudo update-alternatives--install/usr/bin/java java/usr/local/java/jdk1.6.0_38/bin/java 300

$ sudo update-alternatives--install/usr/bin/javac javac/usr/local/java/jdk1.6.0_38/bin/javac 300

$ sudo update-alternatives--install/usr/bin/javaws javaws/usr/local/java/jdk1.6.0_38/bin/javaws 300

$ sudo update-alternatives--install/usr/bin/jar jar/usr/local/java/jdk1.6.0_38/bin/jar 300

$ sudo update-alternatives--install/usr/bin/javap javap/usr/local/java/jdk1.6.0_38/bin/javap 300

$ sudo update-alternatives--config java

安装软件包

能装的都要装上,以免编译失败,又要回过头重装,如下:

$ sudo apt-get install build-essential make gcc g++ libc6-dev texinfo

libncurses-dev git-core gnupg flex bison zip curl ncurses-dev libsdl-dev

zlib1g-dev ia32-libs libxml2-utils lzma

编译源码

到源码目录下,如下:

$ source build/envsetup.sh

$ lunch

选择arm平台。

$ make-jn

n为CPU个数的两倍,主要是提高编译速度。

可能的错误

编译过程碰到如下错误:

File"/usr/lib/python2.7/subprocess.py", line 679, in __init__

errread, errwrite)

File"/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child

raise child_exception

OSError: [Errno 2] No such file or directory

一般情况是因为前面的javap没有配置所致。如果必须的软件包没有安装,也会有类似的提示,仔细向上翻看错误提示,找到真正的错误地方,安装对应的软件包即可。

阅读剩余
THE END