返回首页

为什么拿到Android 源码需要编译?

127 2024-04-10 12:46 admin   手机版

一、为什么拿到Android 源码需要编译?

感谢邀请。不知道你的目的是什么。

需要把用户能看得懂而机器不识别的代码转化成机器能识别的代码从而允许,所以需要编译。

如果单纯看源码了解设计思路,则不需要编译。

第一 感觉你搞错了所指对象 所谓的编译源代码 应该主要是指工程源代码(即手机厂商生成整个rom的代码,包括内核,驱动,中间层,各个不同芯片厂商的不同代码,framework,以及应用等等) 这个源代码比谷歌发布的 要更丰富 更完善 很多对象谷歌的那套源代码都是没有实现的 是空的

不知道是不是这样,个人理解,因为谷歌的源码除了生成模拟器,好像其他感觉都没实现(例如很多在模拟器上无法实现的)

第二,编译源码一般是为了获取隐藏api,因为sdk提供的api有些没有提供,但是确实存在,在源码下能编译通过

其次,手机厂商是肯定要编译源码的

还有些啥 一些发烧友可能也会编译改些东西玩玩

如果对android技术比较感兴趣,可以关注一下微信公众号:终端研发部,和我一块交流和学习。

参考阅读:

2017上半年技术文章集合—184篇文章分类汇总

为什么你那么努力,却一直还得不到提升?

终端研发部是一个以技术为主的学习交流技术号,谈的是技术,是产品,更是我们的人生。做东半球最会思考,最有味道的互联网开发者

二、关于android源码编译?

默认master版本,不过你可以指定成其他分支

三、如何编译Docker源码?

本文根据docker官方给出的docker代码编译环境搭建指南做更深入的分析。官方给出的指导比较简单,但是由于国内的网络问题经常会编译失败,了解了编译步骤后,也可以结合自身遇到的网络问题进行“规避”。

docker的编译环境实际上是创建一个docker容器,在容器中对代码进行编译。 如果想快速的查看编译环境搭建指导,而不关注环境搭建的机制和细节,可以直接跳到最后一章“总结”。

前提

机器上已经安装了docker,因为编译环境是个docker容器,所以要事先有docker(daemon),后面会创建个编译环境容器,在容器里面编译代码。本文中使用物理机,物理机上运行着docker (daemon)。

机器(物理机)上安装了git 。 后续使用git下载docker源码

机器(物理机)上安装了make。

下载ubuntu 14.04的docker镜像

下载docker源码

git clone

会把代码下载到当前目录下,后面会把代码拷贝到容器中。

编译前分析

官方给的编译方法是make build 和 make binary等。下面先分析Makefile,看懂Makefile后,编译环境的准备流程就比较清楚了。

Makefile

在下载的docker源码中可以看到它的Makefile,Makefile中比较关键的几个参数:

DOCKER_MOUNT := $(if $(BIND_DIR),-v "$(CURDIR)/$(BIND_DIR):/go/src/github.com/docker/docker/$(BIND_DIR)") DOCKER_MOUNT 表示创建容器时的mount参数。因为编译环境是一个容器,在后续的步骤中启动容器时使用DOCKER_MOUNT参数,会将物理机上的目录mount给容器容器,容器中该目录是编译生成docker二进制文件的目录。

DOCKER_FLAGS := docker run --rm -i --privileged $(DOCKER_ENVS) $(DOCKER_MOUNT) 这是后面创建docker容器时的命令行的一部分,其中包含了前面的DOCKER_MOUNT参数。

DOCKER_IMAGE := docker-dev$(if $(GIT_BRANCH),:$(GIT_BRANCH)) 这是docker image参数,镜

四、怎样编译gcc源码?

在msys和bin目录的同级建立mingw目录(作为gcc和第三方库的安装目录),具体放置如下:msys |---1.0 |---bin |---mingw |---bin |---include |---lib |---build |---src说明,以下下载的源码包都放到到build\src下面并解压,下载的补丁包都放到build下面。

五、编译Android源码和内核源码的区别?

Android源码编译之后生成的是ramdisk.img、system.img和userdata.img。而内核源码编译完成之后生成的是ZImage。在一般情况下Android源码是不带有内核源码的,但是带有一个镜像,这样在编译完Android源码之后就可以模拟器启动了,如果要更换系统的内核,此时将高版本的内核源码进行编译生成ZImage然后替换Android系统的的镜像。这样使用模拟器启动之后就可以查看内核是否已经被刷新。

请注意,android源码和kernel源码是分开下载的

编译android源码

进入source目录下,执行make 即可。

编译完成后,可以在源码目录的out/target/product/generic/目录下看到编译好的ramdisk.img、system.img和userdata.img了。

编译内核源码

新建Kernel/goldfish,在这个目录下进行编译

六、Linux下如何编译Android源码~~~?

这个问题已经找到解决方案了,方法如下:

1.在Linux设置文件共享,将项目共享,最好有个密码什么的。

2.在Linux上配置ssh server,用于和编译安卓源码3.Linux mac 通过连接,原因是有线传输比无线的快很多,ping只是0.3左右ms,不影响使用。然后就可以mac编写代码,然后ssh编译什么的,很方便,

七、如何在QNX下编译源码?

在QNX下编译源码,需要按照以下步骤进行:

1. 安装QNX开发环境:首先需要在QNX系统上安装QNX开发环境,包括交叉编译器、构建工具等。可以通过QNX官方网站下载并安装相应的软件包。

2. 配置环境变量:在编译之前,需要设置一些环境变量,例如交叉编译器的路径、库文件的路径等。这些变量可以在QNX系统的配置文件中进行设置。

3. 获取源码:从源代码仓库中获取需要编译的源码,可以使用git或其他版本控制系统进行克隆或下载。

4. 切换到源码目录:进入源码所在的目录,可以使用cd命令进行切换。

5. 执行编译命令:根据源码的编译要求,执行相应的编译命令。例如,如果是C语言项目,可以使用gcc编译器进行编译;如果是Makefile项目,可以直接运行make命令进行编译。

6. 安装编译结果:如果编译成功,可以将编译结果安装到目标系统中。可以使用make install命令进行安装。

7. 测试编译结果:安装完成后,可以对编译结果进行测试,确保程序能够正常运行。

需要注意的是,具体的编译过程可能会因为源码的不同而有所差异,需要根据实际情况进行调整。

八、ubuntu编译android源码时卡死?

多半是因为编程进去死循环,要重新编程。

九、只有android源码才能编译系统app吗?

要么应用获取到 root 权限,要么增加 Manifest 中增加 android:sharedUserId="android.uid.system",同时需要使用该系统的签名。

如果想在 AS 中编译系统 App,可以看下这个:https://xiaozhuanlan.com/system-app

十、linuxopencv怎么重新编译单个源码?

首先,先要再linux上安装opencv的库,在线安装的话,很容易 然后,编译的时候需要加上 `pkg-config opencv --libs --cflags opencv` 参数

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片