我正在构建一个自定义 Marshmallow Android 版本,我想在第一次启动时向 SD 卡添加一些文件- 具体来说,我希望在创建 DCIM、下载、铃声等的同时创建它们。
默认文件夹结构是何时创建的?
android android-source android-sdcard android-6.0-marshmallow
我正在为我的 Pixel 3a sargo 构建 AOSP 12。它有效,但我想在上面安装 Gapps。当我尝试在 TWRP 中刷新任何 Gapps zip 时,它说我的系统分区是只读或已满,因此我尝试使用读写权限重新安装它。但它表明了同样的事情。之后,我看到我的系统分区已满。所以我想知道,如何在构建 AOSP 时包含 Gapps?但由于 OpenGapps 不适用于 Android 12(我尝试过但构建失败),我不知道如何在我的构建中包含 Gapps。
有人能帮助我吗?
下午好,
我以前能够在我的P5110(Galaxy Tab 2)上构建CM 10.1.从那时起,我尝试将项目导入Eclipse.我怀疑它可能做了一些导致以下错误的事情.
packages/apps/SoundRecorder/gen/com/android/soundrecorder/R.java:6: duplicate class: com.android.soundrecorder.R
public final class R {
^
target thumb C++: libwilhelm <= frameworks/wilhelm/src/android/AudioPlayer_to_android.cpp
target thumb C++: libwilhelm <= frameworks/wilhelm/src/android/AudioRecorder_to_android.cpp
packages/apps/CMWallpapers/gen/com/cyanogenmod/CMWallpapers/R.java:6: duplicate class: com.cyanogenmod.CMWallpapers.R
public final class R {
^
target thumb C++: libwilhelm <= frameworks/wilhelm/src/android/MediaPlayer_to_android.cpp
target thumb C++: libwilhelm <= frameworks/wilhelm/src/android/OutputMix_to_android.cpp
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
make: *** [/home/can/android/system/out/target/common/obj/APPS/SoundRecorder_intermediates/classes-full-debug.jar] Error 41
make: *** Waiting for unfinished jobs....
Note: packages/apps/CMWallpapers/src/com/cyanogenmod/CMWallpapers/wallpaper.java …Run Code Online (Sandbox Code Playgroud) 在AOSP(DisplayManagerService类)中有一个公共方法connectWifiDisplay(String deviceAdress ),但在Android SDK中没有.
如何调用此方法?
使用USB将Android屏幕镜像到PC
方法1当然可以工作(在shell帐户下),但是,每次更新Android操作系统时,都需要对自定义代码进行更新以适应操作系统的变化,而方法2则API保持固定,并且没有需要担心操作系统的变化,问题是是否可以仅使用OpenGL / OpenMAX来实现镜像?
综上所述,通过USB镜像android屏幕的最佳方法是什么?
我已经能够构建 AOSP。但是,我尝试将此应用程序添加到 AOSP 并使用 mm ghetto-unlock构建它,但我收到错误消息,无法找到符号并且 @Override 方法没有覆盖任何内容。我相当确定问题是该应用程序没有与正确的库或 API 绑定,但我不确定我做错了什么。任何帮助将不胜感激。
我正在尝试将我的预构建库包含在现有的 Android Module 中art/runtime/。我已经按照官方文档,找到here。详细地说,这些是我所做的更改:
在 art/Android.mk 中添加了几行:
# This makes sure my library's .mk is found
include $(art_path)/mylib/Android.mk
Run Code Online (Sandbox Code Playgroud)
在 art/runtime/Android.mk 中添加了几行:
# Added this, after the LOCAL_C_INCLUDES
LOCAL_STATIC_LIBRARIES := mylib-prebuilt
# Also, on the next mention of LOCAL_STATIC_LIBRARIES, I changed the
# assignment operator to '+=', so mylib won't overriden
Run Code Online (Sandbox Code Playgroud)
包含在art/runtime.cc源 mylib 的头文件中:
#include "mylib.h"
// then at some point use it
Run Code Online (Sandbox Code Playgroud)
我已经把mylib来源放在art/mylib. 我使用常规 Makefile 手动构建存档libmylib.a,我希望将其静态链接到libart.so. …
在Android开源项目(AOSP)中,存在近500个项目.我想要描述每个项目以及他们的角色.
我在 at 添加了一个新的 C++ 子项目,frameworks/base/cmds/myproject它有自己的Android.mk文件。当我运行时make myproject,它会编译得很好,没有问题。
但是我想添加make myproject到主要make. 我的意思是,当有人make在 AOSP 的根目录下运行时,我的项目也将包含在内。我该怎么办?
到目前为止,我已经按照这个git guide设法构建了 LatinIME (AOSP) 。我已经使用这个git构建了 libjni_latinime.so 文件通过将本项目中使用的包名称的所有引用更改为我自己的包名称,然后将它们移动到我的项目 src/main/jniLibs。最后键盘可以工作了!现在我想为更多语言(如希腊语和阿拉伯语)添加字典,以便有预测词。尽管据我所知,latinIME 使用的词典需要采用二进制格式,因此您必须使用 dicttool aosp 构建它们。除了从 aosp 树构建之外,是否还有其他方法可以构建它们,或者是否有任何链接可以下载希腊语和阿拉伯语的预构建 .dict 文件?我没有足够的空间(而且连接非常糟糕,需要很长时间)来下载整个 aosp 树,因为指定的要求告诉您需要 100 gb 用于结帐 git 和额外的 150 gb 来构建它。
我读过了:
用于 V401 二进制字典的 LatinIME dicttool
以及关于此事的大多数问题,但我没有找到任何详细的答案,因为我真的是在 latinIME 上构建的新手。
latinIME 的词典可以在这里找到,我认为这些是你必须使用 dicttool 构建的词典。感谢您对构建希腊语和阿拉伯语词典的任何帮助,非常感谢。
编辑 1:我设法使用该项目中的main_el.dict 包含希腊语字典和希腊语自动更正。它包括来自 aosp 词典的所有预建 dict 文件。现在有人可以帮我预建(二进制)阿拉伯语词典吗?
我目前对为 ARM-v7a 和 ARM64-v8a 架构构建 Android SDK 工具(aapt、adb 等)感兴趣,以便它可以直接在 Android 设备上运行。这可能吗?
我能够按照文档轻松地为 x86/x86_64 构建 Android SDK 工具。
https://source.android.com/setup
为此,我执行了以下步骤。
mkdir ~/WORKING_DIRECTORY
cd ~/WORKING_DIRECTORY
repo init -u https://android.googlesource.com/platform/manifest -b master -g all,-notdefault,tools
repo sync
. build/envsetup.sh
lunch sdk-eng
make sdk
Run Code Online (Sandbox Code Playgroud)
如上所述,这将为 x86/x86_64 构建 android SDK 工具。我只是不确定如何为其他架构构建工具。
我知道您可以为 make 目标指定所需的架构。例如,“make aosp_arm-eng”将为 arm 环境构建映像。但是,当我尝试“make sdk_arm-eng”时,它告诉我目标不存在。
任何帮助将不胜感激。
编辑:
看起来 Debian 在这里有用于 aapt 和其他 android 工具的 arm/arm64 包。
https://packages.debian.org/buster/aapt
但是,由于依赖关系,这些似乎无法在实际的 android 设备上运行。
/android-sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-readelf -a aapt | grep Shared
Type: DYN (Shared object file)
0x0000000000000001 (NEEDED) …Run Code Online (Sandbox Code Playgroud) 我想对 Android 源代码进行一些修改以满足我的要求。这是要求:
我想通过向类中再添加一个公共int字段来索引 Android 应用程序中的所有对象java.lang.Object。因此,所有类都可以继承新添加的字段,因为它们都是Object该类的子类。
到目前为止我所做的是修改文件夹java.lang.Object下的类<Android_source>/libcore/libart/src/main/java/java/lang并重新编译源代码。
我想问一下我做的对不对。我的 Android 应用程序能否识别此更改(例如,String对象是否可以访问新添加的字段)?
编辑
经过大约 3 周的尝试和错误,我终于得到了完整的答案。我想,如果别人想修改的Android源的核心Java库(例如,修改与他人分享这方面的经验Object.java和String.java等)。同样,正如迈克尔所提到的,请注意此类修改可能仅适用于研究或测试目的。
成功修改的关键挑战(这里的“成功”意味着修改后的 Android 源代码可以在模拟器或真实设备上构建和运行而没有任何问题)是核心 java 库中的一些类有它们的 C++ 镜像(位于<Android_source>/art/runtime/mirrors/)。在修改这些 java 类时,您也应该对其 C++ 镜像进行相同的修改。否则,您可能会在构建过程中失败,因为您需要通过大量检查。由于我只向 中添加了一个新字段,因此Object.java我将在下面列出我遇到的一些检查(或要求):
1.对象实例的大小=其C++镜像的大小。例如,如果我将一个long字段添加到 中Object.java,我还应该uint64_t向它的 C++ 镜像添加一个字段以使其大小相等。
2. 尝试使对象实例的大小为 2 的幂(例如,2, 4, 8, 16, ...)。比如原来的大小Object.java是8,所以我加了一个long字段,把大小增加到16。如果我加了一个int字段,大小变成了12,很多检查都会失败。我不知道确切的原因,但我想这与memory 对齐有关。
3.尽量将原始类型字段放在非原始类型字段之后,原始类型字段应按大小排序。这意味着您应该将引用类型字段放在前面,然后是 8 字节原始类型字段,然后是 4 字节原始类型字段,然后是 2 字节原始类型字段,然后是 1 字节原始类型- 类型字段。同样,我猜原因是内存对齐 …
android-source ×12
android ×10
build ×2
java ×2
android-12 ×1
android-make ×1
android-ndk ×1
c++ ×1
cyanogenmod ×1
dictionary ×1
makefile ×1
openmax ×1
system ×1