我对 Android 内核级编程感兴趣。其实我是一个Linux内核程序员。我想知道如何从内核开始,如何编译、启动以及关于内核级子系统(例如:如何实现文件系统等)在 Android 中。非常感谢任何书籍或文章或良好的入门指南。
我在构建android源代码时遇到以下错误,我添加了使用android.os.ServiceManager的自定义应用程序.
cannot find symbol
symbol : class ServiceManager
location: package android.os
import android.os.ServiceManager;
Run Code Online (Sandbox Code Playgroud)
为什么我会遇到这个错误,实际上这个导入可以在android源码的许多其他应用程序中找到.
我在http://source.android.com/source/building.html中构建了android源代码, 并且也按照这篇文章导入android.os.ServiceManager无法解析答案.
有关更多信息,我正在[android root]/packages/app /目录中构建
请有人帮我解决这个问题吗?
使用来自 AOSP 的“repo”(用 python 编写)工具,当您使用它的“sync”命令时,根据我在此处阅读的其他答案,例如(Android repo manifest repository 如何工作?)它将检出分支在该 git repo 的清单中指定。
但是,这并没有匹配与我实际看到进入git的本地回购协议,在那里我得到的一个时:
aosp@aosp:/aosp/android-x86-jb42/bionic$ git branch
* (no branch)
Run Code Online (Sandbox Code Playgroud)
并且 .git/HEAD 包含一个 SHA 而不是分支引用路径的引用。所以对我来说,它看起来更像是在一个独立的头上,但如果我手动这样做(检查特定提交),git branch 的结果将在输出中显示 sha1,而不仅仅是上面的“(无分支)”。
这里发生了什么?
在wso2物联网文档中:(https://docs.wso2.com/display/IOTS320/Integrating+the+Android+System+Service+Application)
((系统服务应用程序无法通过通常的 Android 开发者 SDK 构建,因为它需要访问开发者限制的 API。因此,您需要将 /platforms/android- 目录下现有的 android.jar 文件替换为显式构建的 android.jar 文件可以访问受限的 API。 下载 Android 开源项目 (AOSP)并构建源代码以获取所需 SDK 级别的 jar 文件。))
我不明白如何生成 android.jar 文件。我研究了Linki,但我没有看到任何关于它的明确信息。请帮助我。
我正在构建服务器上编译 AOSP 8.1.0 源代码树。我使用 Ubuntu 16.04 所需的所有软件包制作了一个 docker 映像。我在启动 docker 镜像时挂载了源树、ANDROID_OUT 和 ccache 目录。这三个目录在docker中的路径是一样的:
来源:/home/builder/android_source/AOSP_8.1/
输出:/home/builder/android_out/AOSP_8.1/
ccache: /home/builder/ccache/
问题是我不明白 ccache 的行为方式。如果我watch ccache -s在编译 android 时运行,我会看到如下内容:
files in cache: 10365
cache size: 931.9MB
Run Code Online (Sandbox Code Playgroud)
这些值之后的几秒钟可以增加或减少。我已将最大缓存大小设置为 30GB,ccache -s告诉我这是正确的最大大小,但缓存大小从未超过 1Gb。我在 5 次构建之后看到的最大大小约为 983MB。
我尝试了什么?
1) chown -R builder:builder ~/ccache/
2)ccache -M 30G在码头。最大大小设置为 30GB,行为保持不变。
3) ccache -C- 缓存清除,没有什么好转的。
我的 ccache 有什么问题?
我正在尝试在模拟器上运行 AOSP(oreo 8.1) 构建。
我使用以下命令来构建 AOSP。
source build/envsetup.sh
lunch aosp_arm-eng
make -j4
Run Code Online (Sandbox Code Playgroud)
我的构建成功了。现在我正在尝试使用以下命令在模拟器上运行。
emulator
Run Code Online (Sandbox Code Playgroud)
模拟器启动并显示以下警告消息。
无法自动检测 ADB 二进制文件。在扩展设置页面中添加 ADB 的自定义路径之前,某些模拟器功能将无法使用。
成功启动后,模拟器上显示“系统用户界面没有响应”消息,模拟器运行速度也很慢。
非常感谢解决此问题的任何帮助。
emulator: WARNING: system partition size adjusted to match image file (2050 MB > 200 MB)
emulator: WARNING: encryption is off
main-loop: WARNING: I/O thread spun for 1000 iterations
Run Code Online (Sandbox Code Playgroud) 我是 ROM 开发的新手。我有一台 Moto e 第一代设备。我想给它另一种生活。所以我试图从 AOSP Q Beta 1 源代码构建 Android Go。我不知道如何添加产品以及如何配置它来构建 Android Go。请帮我配置和构建它。
我需要基于 6 到 9 自定义 SystemUI,但问题是当我比较 6 源代码补丁以应用于 9 时,当我导入整个 aosp 项目并执行操作时,可能会缺少导入语句和方法映射。但是当我导入整个aosp项目时,它不会显示要导入的系统UI方法的编译错误或缺少类。
我可以知道哪一个是最适合用于 aosp 系统应用程序的 IDE?
我在这里找到了 ccache aosp repo https://android.googlesource.com/toolchain/ccache/,但我不知道如何在 aosp v10 上使用 ccache,aosp 官方网站不再有关于 ccache 的任何信息,只有多个构建。ccache 是否仍然适用于最新版本的 aosp ?
我在 中找到了各种内核配置kernel/configs/q。
当我改变它们时,并且mm在kernel/msm-4.14内核中运行时不会重建。
我在哪里编辑内核配置,以便在mm运行时强制内核重建?
android-source ×10
android ×6
ccache ×2
android-go ×1
c ×1
custom-rom ×1
git ×1
ide ×1
java ×1
kernel ×1
linux-kernel ×1
repository ×1
rom ×1
wso2 ×1
wso2-iot ×1