我向我的自定义 android 操作系统添加了一个新 API,并按照以下步骤创建了 SDK:
然后将 Android Studio 配置为使用新的 SDK:
结果:当我尝试构建项目时,构建过程卡住了一条消息:
AAPT 进程未准备好接收命令
与此同时,我找到了一种使用自定义 android.jar 的解决方法(在答案中)
我正在开发一个衍生自 AOSP 的项目,并且希望能够使用 CLion 来编辑具有代码支持的 C++ 部分。
据我了解,阻止我这样做的主要因素是我需要包含 Android.mk 包含的所有项目。我可以通过 mma 编译,但是从 Clion 内部构建失败,因为它无法解析 #include 命令..
有没有办法遍历现有的 Android.mk 文件来创建一个合适的 Cmakelists 文件,让 Clion 提供代码支持?这可能吗?
谢谢
我目前正在使用 Android 开源项目构建自定义图像。我想将这些自定义图像(system.img、ramdisk.img、cache.img 等)发送给朋友,以便他/她无需编译整个 AOSP 分支即可运行它们。请注意,他们“确实”拥有最新的官方 Android SDK(不是 AOSP)。
有没有办法做到这一点?理想情况下,我希望有一些已经存在的 make 目标,我可以在其中简单地运行它(make avd-package)并且会弹出一个“avd”(或接近它的东西),这样我就可以将它发送给我的朋友和让他们输入:
模拟器 -avd
此外,根据我的研究,我希望这些图像可由普通 Android SDK(而非 AOSP)运行这一事实可能会带来问题,因为 Android SDK 中的工具与 AOSP 中的工具(例如 qemu 版本等)不同。 )。我还需要向我的朋友发送模拟器二进制文件吗?
谢谢!
有没有一种简单的方法可以使用 adb shell 获取 Android 设备的芯片名称,例如 MediaTek SoC (ARMv5 MT1000 ..)?
我正在尝试运行“adb shell cat system/build.prop”,但没有找到芯片或 SoC 名称。
任何帮助!
我(作为 AOSP 构建者)可以预安装一些应用程序,以便在设备上刻录后可以轻松卸载它们(就像常规下载的应用程序一样)吗?
我已经熟悉系统应用程序和隐私应用程序,但由于它们位于系统分区中,因此无法删除!(仅在设置菜单中禁用)
PS 我知道华为例如使用 /system/delapp 来安装此类应用程序。但我正在寻求一种通用方法或专门针对我正在研究的 AMLogic 平台!
我正在尝试逐步将 AOSP 从其默认应用程序中剥离出来。但我想知道我要应用的方法是否正确并且是最有效的有效的。
在研究了这样做的方法之后,我采用了以下方法:(示例应用程序 - “package_name”)
1. Pick particular app and find out its "LOCAL_PACKAGE_NAME"
2. Use "envsetup.sh" provided command "mgrep package_name"
3. Look at the output to determine where package_name is mentioned
4. Remove lines of code containing package_name from makefiles
Run Code Online (Sandbox Code Playgroud)
我也偶然发现了这个解决方案:
您可以添加一个新模块,一个存根,而不是修改 AOSP 中许多文件夹中的一堆 .mk 文件,并使用 LOCAL_OVERRIDES_PACKAGES 在其 Android.mk 中禁用模块,而不是修改许多文件夹中 AOSP 中的一堆 .mk 文件。如果某个模块仍然出现在目标中,您可能需要向 LOCAL_OVERRIDES_PACKAGES 添加另一个通过 LOCAL_REQUIRED_MODULES 添加不需要的包的模块。
但遗憾的是我还不知道如何构建一个新的“模块,一个存根”,所以我现在还不能应用这种方法。
我可以采取任何步骤来确保从我的构建中完全删除特定应用程序而不损害任何内容。你认为什么最优雅如果有的话,什么(文献/文档/网站)对我熟悉对 AOSP 代码进行“临时”更改(如上述案例)有用?
如果这很重要,我现在想删除的内容是:计算器;日历; 相机; 钟; …
所以我写了一个 go 文件,它将动态附加一个库到 apex_defaults-> multilib -> first -> native_shared_libs; Android.bp可以在此处查看完整代码。但是,我无法像生成的其他 lib .so 文件一样在我的 out 目录中看到已编译的 .so 文件。
长解释:
我想向数组native_shared_libs添加一个名为“libabcxtractor”的库;就此而言,我写了一个.go文件(由 Google 推荐),其条件如下:
package my_apex
import (
"android/soong/android"
"android/soong/apex"
"fmt"
"strings"
)
func globalFlags(ctx android.BaseContext) []string {
var native_shared_libs []string
if(strings.Contains(ctx.AConfig().DeviceName(), "my_apex_device")){
fmt.Println("Some log to verify condition is getting executed......")
native_shared_libs = append(native_shared_libs, "libabcextractor")
}
return native_shared_libs
}
func myApexFlagsDefaults(ctx android.LoadHookContext) {
type props struct {
Multilib struct {
First struct {
native_shared_libs []string
} …Run Code Online (Sandbox Code Playgroud) 我想使用我的静态或共享预建库libmylib.so or libmylib.a。我的构建目标是 Hikey960 设备。我成功构建了纯aosp项目并刷新到Hikey960设备。接下来我想/frameworks/av/media/libaudioclient/AudioTrack.cpp使用我的libmylib.so.
我创建了mylib目录/system并复制了预构建的库。
|-- Andoird.mk
|-- arm64-v8a
| |-- shared
| | `-- Release
| | `-- libmylib.so
| `-- static
| `-- Release
| `-- libmylib.a
|-- armeabi
| |-- shared
| | `-- Release
| | `-- libmylib.so
| `-- static
| `-- Release
| `-- libmylib.a
|-- armeabi-v7a
| |-- shared
| | `-- Release
| | `-- libmylib.so
| `-- static
| …Run Code Online (Sandbox Code Playgroud) 我正在使用 AOSP 模拟器来测试我的代码。我在我的电脑上下载了 AOSP 的 android10_release 源代码。然后使用以下命令
source build/envsetup.sh
set_stuff_for_environment
lunch aosp_x86_64-eng
make -j6
emulator
Run Code Online (Sandbox Code Playgroud)
现在,在运行这些命令后,我可以成功地在我的 PC 操作系统中运行模拟器 Ubuntu 18.04 我还安装了许多用于处理 AOSP 的库,如 jdk-8、python、curl、repo、git 和其他描述的东西在 AOSP 网站上
我将通过执行以下命令来查看我的模拟器在终端中运行
$ adb devices
Run Code Online (Sandbox Code Playgroud)
附加设备列表 emulator-5554 设备
我还可以通过执行以下命令在此模拟器中安装我的 apk
$ adb install myapp.apk
Run Code Online (Sandbox Code Playgroud)
它被安装,我可以在模拟器中看到它
现在来回答我的问题
为什么此模拟器未在设备的 Android Studio 中显示即使我对 android studio 中的 adb 连接进行故障排除,它也会显示我的模拟器正在运行但未显示在可用设备中。
我是新的 AOSP 构建系统。我按照以下链接中给出的所有步骤 https://source.android.com/setup/build/building
从源代码构建 Android。使用了最近的标签android-11.0.0_r7
repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r7
repo sync -c -j8
source build/envsetup.sh
lunch aosp_arm-eng
make -j8
Run Code Online (Sandbox Code Playgroud)
构建成功
removing out/target/product/generic/system-qemu.img.qcow2
out/host/linux-x86/bin/sgdisk --clear out/target/product/generic/system-qemu.img
#### build completed successfully (05:12:46 (hh:mm:ss)) ####
Run Code Online (Sandbox Code Playgroud)
但是当我运行模拟器时,我收到此消息
emulator: ERROR: Can't get kernel version from the kernel image file: '/media/anand/BUILD/aosp/out/target/product/generic/kernel-ranchu-64'
Run Code Online (Sandbox Code Playgroud)
任何人都可以请帮忙,我做错了什么