Flare(Rive)是一家可以快速制Flutter SVG动画的网站,提供专门的Flutter Weight承载网站导出的动画文件,相当于Android的Lottie,Flare的首次出现非常惊艳,是在Flutter发布大会上,一下就火了。
flutter动态申请权限
https://pub.flutter-io.cn/packages/permission_handler
https://www.jianshu.com/p/fa68876fbdfd
例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Future requestPermission() async { // 申请权限 Map<PermissionGroup, PermissionStatus> permissions = await PermissionHandler().requestPermissions([PermissionGroup.storage]); // 申请结果 PermissionStatus permission = await PermissionHandler() .checkPermissionStatus(PermissionGroup.storage); if (permission == PermissionStatus.granted) { print("权限申请通过"); } else { print("权限申请通过"); } } } |
参考链接
Flutter 1.22最新的多国语支持配置和使用
Flutter 1.22现已发布
最新版本中,随之发布了很多新的特性以及修复了一些BUG,现在我们说说其中的新的多国语插件。个人感觉新多国语操作,多了一些模板性的东西,但是也方便了很多东西。
话不多说,现在我们进入正题,如何使用新插件呢?
配置项目的yaml文件
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
dependencies: flutter: sdk: flutter flutter_localizations: #配置多国语支持 sdk: flutter intl: ^0.16.1 #多国语插件,要求高于0.16.1版本 flutter: # The following line ensures that the Material Icons font is # included with your application, so that you can use the icons in # the material Icons class. uses-material-design: true generate: true #新增配置,自动多国语代码生成 |
AAPT: error: resource android:attr/fontVariationSettings not found
最近在编译Flutter项目的时候,报错如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:processDebugResources'. > Android resource linking failed Output: /Users/xxxx/Source/developer_quest/build/app/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:86: error: resource android:attr/fontVariationSettings not found. /Users/xxxx/Source/developer_quest/build/app/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:87: error: resource android:attr/ttcIndex not found. error: failed linking references. Command: /Users/xxxx/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-osx.jar/ace5a2b7765511437e6add51febae423/aapt2-3.2.1-4818971-osx/aapt2 link -I\ /Users/xxxx/Library/Android/sdk/platforms/android-27/android.jar\ --manifest\ /Users/xxxx/Source/developer_quest/build/app/intermediates/merged_manifests/debug/processDebugManifest/merged/AndroidManifest.xml\ -o\ /Users/xxxx/Source/developer_quest/build/app/intermediates/processed_res/debug/processDebugResources/out/resources-debug.ap_\ -R\ @/Users/xxxx/Source/developer_quest/build/app/intermediates/incremental/processDebugResources/resources-list-for-resources-debug.ap_.txt\ --auto-add-overlay\ --java\ /Users/xxxx/Source/developer_quest/build/app/generated/not_namespaced_r_class_sources/debug/processDebugResources/r\ --custom-package\ dev.flutter.devrpg\ -0\ apk\ --output-text-symbols\ /Users/xxxx/Source/developer_quest/build/app/intermediates/symbols/debug/R.txt\ --no-version-vectors Daemon: AAPT2 aapt2-3.2.1-4818971-osx Daemon #0 Output: /Users/xxxx/.gradle/caches/transforms-1/files-1.1/core-1.1.0.aar/becc1f5b1538f3fe61f1f959fb2bd672/res/values/values.xml:174:5-210:25: AAPT: error: resource android:attr/fontVariationSettings not found. /Users/xxxx/.gradle/caches/transforms-1/files-1.1/core-1.1.0.aar/becc1f5b1538f3fe61f1f959fb2bd672/res/values/values.xml:174:5-210:25: AAPT: error: resource android:attr/ttcIndex not found. error: failed linking references. Command: /Users/xxxx/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-osx.jar/ace5a2b7765511437e6add51febae423/aapt2-3.2.1-4818971-osx/aapt2 link -I\ /Users/xxxx/Library/Android/sdk/platforms/android-27/android.jar\ --manifest\ /Users/xxxx/Source/developer_quest/build/app/intermediates/merged_manifests/debug/processDebugManifest/merged/AndroidManifest.xml\ -o\ /Users/xxxx/Source/developer_quest/build/app/intermediates/processed_res/debug/processDebugResources/out/resources-debug.ap_\ -R\ @/Users/xxxx/Source/developer_quest/build/app/intermediates/incremental/processDebugResources/resources-list-for-resources-debug.ap_.txt\ --auto-add-overlay\ --java\ /Users/xxxx/Source/developer_quest/build/app/generated/not_namespaced_r_class_sources/debug/processDebugResources/r\ --custom-package\ dev.flutter.devrpg\ -0\ apk\ --output-text-symbols\ /Users/xxxx/Source/developer_quest/build/app/intermediates/symbols/debug/R.txt\ --no-version-vectors Daemon: AAPT2 aapt2-3.2.1-4818971-osx Daemon #0 * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 13s Exception: Gradle task assembleDebug failed with exit code 1 |
解决方案:
try to change the compileSdkVersion above 27:
compileSdkVersion 28
参考链接
WOL网络唤醒在微星主板上开启(ubuntu 20.04/Windows 10双系统)
网络唤醒
微星H97I-AC的板子开启WOL网络唤醒
主板:微星 H97I-AC,集成 Realtek 千兆网卡,这个网卡自带网络唤醒功能,但是需要在操作系统中通过驱动开启这个功能,BIOS中无法直接开启。
操作系统:Windows 10/ubuntu 20.04双系统,双系统都需要进行配置,才能实现全部系统关机之后都能正常唤醒。
BIOS 设置
- 高级–整合周边设备–网卡ROM启动,设置为允许
- 高级–电源管理设置–Eup 2013,设置为禁止
- 高级–唤醒事件设置–PCIE设备唤醒,设置为允许
Windows 10 设置
- 控制面板–所有控制面板项–网络连接
- 在网卡适配器点击鼠标右键–属性,弹出的属性对话框中
- 选择网络选项卡–配置
- 选择高级选项卡,将
关机 网络唤醒设置为开启,将魔术封包唤醒设置为开启 - 电源管理选项卡,勾选下面三个选项,允许此设备唤醒计算机。
ubuntu 20.04设置
|
1 2 3 4 5 |
$ sudo apt-get install ethtool $ sudo apt-get install vim $ sudo vim /etc/systemd/system/wol.service |
里面的内容如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[Unit] Description=Configure Wake On LAN [Service] Type=oneshot ExecStart=/sbin/ethtool -s eth0 wol g # 如果有多张网卡 # ExecStart=/bin/bash -c '/sbin/ethtool -s enp5s0 wol g && /sbin/ethtool -s eth0 wol g' [Install] WantedBy=basic.target |
上述配置是向驱动发送控制命令,启用网络唤醒功能。
启用服务
|
1 2 3 4 5 |
$ sudo systemctl daemon-reload $ sudo systemctl enable wol.service $ sudo systemctl start wol.service |
远程唤醒
|
1 2 3 |
$ sudo apt-get install wakeonlan -y $ wakeonlan MAC |
也可尝试 etherwake
|
1 2 3 4 5 6 7 |
$ sudo apt-get install etherwake -y $ etherwake MAC # OpenWrt # opkg install etherwake # /usr/bin/etherwake -i br-lan MAC |
参考链接
Error: Your CLT does not support macOS 11.0.
最近系统升级到macOS Big Sur(11.0.1)之后,系统报告如下错误:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$ brew upgrade ........................................... ==> Upgrading 5 outdated packages: tomcat 9.0.39 -> 9.0.40 gradle 6.7 -> 6.7.1 opencv 4.5.0_3 -> 4.5.0_4 vtk 9.0.1_1 -> 9.0.1_2 imagemagick 7.0.10-38 -> 7.0.10-39 ==> Upgrading tomcat 9.0.39 -> 9.0.40 ==> Downloading https://www.apache.org/dyn/closer.lua?path=tomcat/tomcat-9/v9.0. ==> Downloading from https://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.40/bi ######################################################################## 100.0% Error: Your CLT does not support macOS 11.0. It is either outdated or was modified. Please update your CLT or delete it if no updates are available. Error: An exception occurred within a child process: SystemExit: exit |
解决方案如下:
|
1 2 3 |
$ sudo rm -rf /Library/Developer/CommandLineTools $ sudo xcode-select --install |
参考链接
ubuntu 20.04将Python3交叉编译移植到Android平台
最近想在Android环境中集成Python3,参考了一下网上的实现,发现已经有项目实现这个功能的,具体的编译过程参考下面:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
$ sudo apt-get install make # makeinfo工具,包编译时候需要 $ sudo apt-get install texinfo $ sudo apt-get install git $ sudo apt-get install aria2 $ cd ~ $ aria2c -c https://dl.google.com/android/repository/android-ndk-r21b-linux-x86_64.zip $ unzip android-ndk-r21b-linux-x86_64.zip # 安装pyenv,配置python 3.6.6 编译的是这个版本,需要安装这个版本的python,其他版本的Python编译会失败 $ git clone https://github.com/pyenv/pyenv.git $ cd pyenv $ make $ cd bin $ sudo apt-get install openssl $ sudo apt-get install libssl-dev $ sudo apt-get install libbz2-dev $ sudo apt-get install libreadline-dev $ sudo apt-get install sqlite3 $ sudo apt-get install libsqlite3-dev # for scikit-learn $ sudo apt-get install python-numpy $ sudo pip2 install --upgrade pip $ sudo apt-get install cython $ ./pyenv install 3.6.6 # 全局设置版本 $ ./pyenv global 3.6.6 $ eval "$(./pyenv init -)" $ cd ~ $ git clone https://github.com/qpython-android/qpython3-toolchain.git $ cd qpython3-toolchain $ sed -i 's/PYTHON?=python/PYTHON?=python3/g' Makefile $ export ANDROID_NDK=~/android-ndk-r21b # for python2 $ export CLANG_FLAGS_BASE= # for pycryptodome $ export PY_BRANCH=3 $ export PY_M_BRANCH=6m # 目标编译代码为 aarch64 $ export TARGET_ARCH_ANDROID=aarch64 $ export TARGET_ARCH_NAME=android $ export ANDROID_VER=29 $ make clean $ make # 目前 scikit-learn 部分还是编译不通过 |
参考链接
AX88179 USB网卡无法在macOS Big Sur(11.0.1)系统上正常使用
Background
Last year, we wrote that older macOS drivers, known as System Extensions (KEXTs), would begin to be deprecated as of the macOS 10.15 Catalina release. This week, as macOS 11 Big Sur is released, KEXTs have officially been deprecated and are no longer functional.
Instead, Apple is now enforcing the requirement for devices that require third-party drivers to operate as DriverKit Extensions (DEXTs). This change affects many products across the consumer electronics industry, including Docking Stations, USB peripherals, Security/Anti-Virus software, and Networking adapters.
Luckily, most platform vendors and integrated circuit (IC) manufacturers have been prepared for this change and began working on their DEXT implementation after Apple released pertinent documentation at their WWDC (World Wide Developer Conference) in June 2019.
Unfortunately, some vendors could not begin their full transition from KEXT to DEXT until this year. Not all pertinent DriverKit documentation was released at the 2019 event as expected, but, instead, was released at WWDC 2020 in June. Specifically, for Plugable and many other brands, this applies to ASIX-based USB Ethernet Adapters like our USB3-E1000, USBC-E1000, USB2-E1000, and USB2-E100, which we wrote about here for the release of macOS 10.15 Catalina:
https://plugable.com/2019/10/04/usb-ethernet-adapter-not-working-after-macos-catalina-10-15-update-we-can-help/
Current Status for ASIX-based Ethernet Adapters [Novemeber 13, 2020]
We began removing macOS support from our most popular wired network adapters (USB3-E1000 and USBC-E1000) in October 2019. We saw the continued potential for a poor or broken user experience with ASIX-based adapters on macOS and could not in good conscience market the adapters as fully compatible in the long-term as long as ASIX was unwilling to commit to continued development and support of their ICs on macOS.
We have continued to push ASIX for a DEXT beta driver to validate and test internally in the past year. Unfortunately, ASIX has been unable to deliver this solution as requested in anticipation of this significant macOS milestone. We expect a Beta driver from ASIX by the end of November for AX88179 products like the USB3-E1000 and USBC-E1000. Once the driver is validated, we will update this blog post and product driver pages with links to download the driver.
If a wired Ethernet connection is critical to your workflow, Plugable recommends not updating to macOS 11 Big Sur from macOS 10.15 Catalina.
At this time, Plugable is unable to provide a DEXT driver for the following products:
USB3-E1000 IC: AX88179
USBC-E1000 IC: AX88179
USB2-E1000 IC: AX88178 (ASIX has discontinued the IC in this product, and they have not committed to a compatible driver for macOS 11 Big Sur)
The USB2-E100 IC: AX88772 ASIX-based product continues to function, utilizing the in-box drivers in macOS.
We understand this news can be frustrating for our customers and is a situation we have been working to avoid for over one year. We will update this blog post as new information is available to us.
While we cannot promise a functional DEXT driver at any point in the future, if you would like to be notified of that news should it occur, please sign-up on the form below, and we will email everyone as soon as it is available.
ubuntu 20.04编译Android 11源代码&模拟器
Android 11 系统映像可直接将 ARM 指令转换成 x86 指令,因此以前很多需要真机测试的情况,现在只需要模拟器就可以进行操作了。
不过,根据官方博客 Run ARM apps on the Android Emulator 尾部的一段注意事项:
这段事项说明,自己编译的镜像是没办法用上这个功能的,必须是Google编译好的镜像。
由于众所周知的原因,我们是没办法正常下载Android的源代码的,因此只能使用国内的镜像来操作了。
1.安装repo工具以及依赖
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
$ sudo apt-get install gcc make perl $ sudo apt-get install ccache $ sudo apt-get install curl $ sudo apt-get install python # 安装repo的时候需要指定 --devmode ,否则同步的时候,会报告如下错误信息: #repo sync -j4 --fail-fast #/snap/git-repo/18/usr/bin/python: can't open file '~/aosp/.repo/repo/main.py': [Errno 13] Permission denied # 不要使用 snap 安装的repo, 目前存在很多异常问题, # ubuntu 20.04缺少repo 原因是 repo 废弃 python2 的进度慢了一些, # 导致没办法集成到这个版本的系统里面 # sudo snap install git-repo --devmode # 手工下载 repo $ mkdir -p ~/.bin $ PATH="${HOME}/.bin:${PATH}" $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo $ chmod a+rx ~/.bin/repo $ echo "PATH=${HOME}/.bin:${PATH}" >> ~/.bashrc $ sudo apt-get install aria2 $ sudo apt-get install git $ sudo apt install -y libssl-dev # 解决 # prebuilts/clang/host/linux-x86/clang-3289846/bin/clang.real: error while loadin g shared libraries: libncurses.so.5: cannot open shared object file: No such fi le or directory $ sudo apt install libncurses5 # 安装VSCode,方便后续查看代码 $ sudo snap install code --classic $ git config --global user.email "user@email.com" $ git config --global user.name "user" |
2.在需要存储代码的地方创建文件夹
|
1 2 3 |
$ mkdir ~/AndSrc $ cd ~/AndSrc |
3.使用镜像下载Android源代码
清华大学的镜像
|
1 2 3 4 5 6 7 8 9 10 11 |
# 建议直接下载压缩包,使用repo更新基本上都会失败,即使用国内镜像也是一样(目前大约96GB) $ aria2 -c https://mirrors.ustc.edu.cn/aosp-monthly/aosp-latest.tar $ tar xvf aosp-latest.tar $ cd aosp # 解决 fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle $ git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo |
4.Android 模拟器编译(可选)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# 配置默认的 python为python3,否则会在运行时报错 SyntaxError: invalid syntax to repo init in the AOSP code $ sudo mv /usr/bin/python /usr/bin/python.bak $ sudo ln -s /usr/bin/python3 /usr/bin/python # Android 11模拟器对应分支 emu-30-release $ repo init -b emu-30-release # 可能会失败多次,不断尝试,直到完全成功 $ repo sync -j4 --fail-fast $ cd external/qemu/android/ $ ./rebuild.sh --no-tests |
编译完成之后,产生的模拟器可执行文件及库文件都位于external/qemu/objs/android目录下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
~/AndSrc/aosp/external/qemu/android/objs$ ls android_emu64_unittests emulator64-mips android_emu_metrics64_unittests emulator64_simg2img bin64 emulator64_test_crasher build emulator64-x86 emugl64_common_host_unittests emulator-check emulator lib emulator64-arm lib64 emulator64_crashreport_unittests lib64GLcommon_unittests emulator64-crash-service lib64OpenglRender_unittests emulator64_img2simg qemu emulator64_libui_unittests resources emulator64_make_ext4fs |
后面就可以像执行 SDK 中的模拟器那样,执行我们编译的模拟器了:
|
1 2 3 |
# 下面是个例子,只有设备上已经通过Android SDK 创建过 Nexus_5_API_30_x86,才可以成功执行 ~/AndSrc/aosp/external/qemu/android/objs$ ./emulator -avd Nexus_5_API_30_x86 |
5.列出android-11全部分支
|
1 |
$ cd .repo/manifests && git branch -a | cut -d / -f 3 | grep android-11 |
6.编译Android 11系统镜像
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$ cd ~/AndSrc/aosp # 前面的编译可能会产生部分垃圾文件,需要清理一下,清理之前,编译好的文件提前备份一下 $ rm -rf * # 解决 fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle $ git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo # 配置默认的 python为python3,否则会在运行时报错 SyntaxError: invalid syntax to repo init in the AOSP code $ sudo mv /usr/bin/python /usr/bin/python.bak $ sudo ln -s /usr/bin/python3 /usr/bin/python $ repo init -b android-11.0.0_r48 # 可能会失败多次,不断尝试,直到完全成功 $ repo sync -j4 --fail-fast # 如果上面的命令失败,可以尝试调整为单线程,目前测试发现单线程虽然慢点,但是基本不会失败,多线程经常失败 # repo sync -j1 --fail-fast |
7.引入编译环境变量
|
1 |
$ source build/envsetup.sh |
8.设置编译目标,此处我们指定编译x86_64下的完整调试版本
|
1 2 3 4 5 6 7 |
# eng:代表 engineer,开发工程师的版本,拥有最大的权限(root等),具有额外调试工具的开发配置。 # 执行 lunch 命令可以输出全部的编译目标列表 # 更多的编译选项可以从 build/make/target/product/ 下看到 # lunch aosp_x86_arm-eng 编译后的镜像可以安装 arm 应用, 不过在不进行任何代码调整的情况下,应用启动会崩溃 # 不能安装 arm 应用 $ lunch aosp_x86_64-eng |
9.如果需要跟踪调试代码,建议编译为调试类型
|
1 |
$ export TARGET_BUILD_TYPE=debug |
10.编译
|
1 2 3 4 5 6 7 |
$ export USE_CCACHE=1 # 清理代码,为编译准备干净的环境 $ make clobber $ make -j8 |
注意此处如果发生编译失败,原因基本上是编译顺序导致的引用出错,也就是某些模块还没有编译完成,其他模块已经开始尝试链接,导致依赖错误,此时只要把多线程并发编译修改成单线程编译即可,即直接执行
|
1 |
$ make |
如果由于内存不足导致的编译失败,可以增加物理内存。但是如果内存无法增加的话,那么适当增加交换分区/交换文件的大小(建议配置16GB以上的交换分区)可以解决此问题,只是编译速度会下降。
运行镜像
选择system-qemu.img和vendor-qemu.img,这两个镜像是专门为qemu运行制作的,如果选择system.img 和vendor.img,则avd运行失败。
|
1 2 3 4 5 6 7 8 9 10 11 |
$ cd ~/AndSrc/aosp $ export ANDROID_BUILD_TOP=~/AndSrc/aosp $ export PATH=$PATH:$ANDROID_BUILD_TOP/out/host/linux-x86/bin $ export ANDROID_SWT=$ANDROID_BUILD_TOP/out/host/linux-x86/framework $ export ANDROID_PRODUCT_OUT=$ANDROID_BUILD_TOP/out/target/product/generic_x86_64 $ ./prebuilts/android-emulator/linux-x86_64/emulator -system ./out/target/product/generic_x86_64/system-qemu.img -data ./out/target/product/generic_x86_64/data.img -ramdisk ./out/target/product/generic_x86_64/ramdisk-qemu.img -vendor ./out/target/product/generic_x86_64/vendor-qemu.img -verbose -show-kernel |
上面运行起来的镜像是从~/AndSrc/aosp/out/debug/target/product/generic/hardware-qemu.ini即可读取配置信息的,但是这个文件直接修改无效,我们如果需要修改参数,只能从启动参数中设置。
比如我们如果需要增大内存,开启GPU的支持,则执行如下命令:
|
1 |
$ ./prebuilts/android-emulator/linux-x86_64/emulator -system ./out/target/product/generic_x86_64/system-qemu.img -data ./out/target/product/generic_x86_64/data.img -ramdisk ./out/target/product/generic_x86_64/ramdisk-qemu.img -vendor ./out/target/product/generic_x86_64/vendor-qemu.img -gpu on -memory 4096 -verbose -show-kernel |
编译支持ARM应用的镜像
尽管根据
我们自己编译的镜像是没办法直接从源代码编译支持安装运行 ARM 应用的。
但是有两个变通方案:
- 从Google官方的 Android 11 镜像中提取需要的文件塞到我们自己编译的镜像里,参考方案: Adding ARM native bridge to the AOSP11 x86 emulator、android_vendor_google_emu-x86
- 使用 Intel Houdini 实现支持,参考方案:Include Intel Houdini in Android-x86
首先,我们尝试从Google官方的 Android 11 镜像中提取需要的文件,执行如下脚本:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 安装镜像文件提取依赖库 $ sudo apt install curl rsync zip unzip binwalk # git clone https://gitlab.com/android-generic/android_vendor_google_emu-x86 vendor/google/emu-x86 $ git clone https://gitlab.com/LongSky/android_vendor_google_emu-x86.git vendor/google/emu-x86 $ . vendor/google/emu-x86/update.sh x86_64 $ sed -i '$a\\n-include vendor/google/emu-x86/board/native_bridge_arm_on_x86.mk' build/make/target/board/generic_x86_64/BoardConfig.mk $ sed -i '$a\\n$(call inherit-product-if-exists, vendor/google/emu-x86/target/native_bridge_arm_on_x86.mk)' build/make/target/board/generic_x86_64/device.mk $ sed -i '$a\\n$(call inherit-product-if-exists, vendor/google/emu-x86/target/libndk_translation.mk)' build/make/target/board/generic_x86_64/device.mk |
执行编译:
|
1 2 3 4 5 6 |
# 禁用系统文件目录文件拷贝检查 $ export DISABLE_ARTIFACT_PATH_REQUIREMENTS="true" $ lunch aosp_x86_64-eng $ make |
参考链接
- Android 模拟器下载、编译及调试
- Ubuntu 16.04下载Android源代码
- Android 模拟器支持运行 ARM 应用,Android 11 系统映像可直接将 ARM 指令转换成 x86 指令
- Android 镜像使用帮助
- 解决:Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle
- Android 开源项目简介
- AOSP(Android) 镜像使用帮助
- macOS Sierra (10.12.3)上编译ARM版本Android 5.1.1_r38 (Lollipop)源代码
- 手动修改android模拟器的system.img
- AOSP编译好的rom,烧录入Android Studio里的avd emulator
- snap version gets "Permission denied
- Why is the “repo” package unavailable in Ubuntu 20.04? How can I install it?
- 解决ubuntu编译aosp报错问题:error while loading shared libraries: libncurses.so.5
- SyntaxError: invalid syntax to repo init in the AOSP code
- repo init 错误SyntaxError:invalid syntax
- Building Android 11 for x86 with ARM compatibility
- Run ARM apps on the Android Emulator
- The Android Cuttlefish emulator
- How to create a custom sdk for x86 and arm for Android 11
- Support x86+arm multilib build.
- ARM binary code translator
- Adding ARM native bridge to the AOSP11 x86 emulator
- Include Intel Houdini in Android-x86
- Android x86 Arm NativeBridge (libhoudini)
- android_vendor_google_emu-x86
- Integrate Houdini to emulator
- Building QEMU Instances for Scaled Dynamic Android App Analysis
- Android 12 S artifact_path_requirements Offending entries Build failed ckati failed with/ aosp预制apk
Python+Appium实现自动化测试(macOS 10.15.7)
一、环境准备
1.脚本语言:Python3.x IDE:安装Visual Studio Code
2.安装Java JDK 、Android SDK
3.adb环境,path添加%Android_SDK%\platform-tools
4.安装Appium for mac,官网地址 http://appium.io/

