Android

https://www.elinux.org/images/2/29/Customizing_AOSP_for_my_Device.pdf

编译选项参考

Android.bp Build Docs (android-8.0.0-r9) · 零壹軒·笔记

AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

android 重新定向printf的输出:下面的data目录必须存在,且有写入权限

#include <stdio.h>
freopen("/data/loglog.txt", "w", stdout);

aosp下载步骤

安装git

安装curl

下载repo:

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo

chmod +x repo
sudo snap install curl

 cp repo /usr/local/bin/

repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b master

repo sync -j1 --fail-fast --force-sync
 -j1不容易出错

或repo sync -j1 

出现:

1、/usr/bin/env: ‘python’: No such file or directory

     whereis python3

     sudo ln -s /usr/bin/python3 /usr/bin/python

2、Downloading Repo source from https://gerrit.googlesource.com/git-repo

     vim ~/.bashrc

     添加:export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

    source ~/.bashrc

    

cc_binary

Android Training | Android中文API

hal层与Framework之间传递数据

1、回调函数

Android 从framework层到HAL层调用实现 - 寒风凌意 - 博客园

2、共享n

android 8.1上新增hidl接口,从hal层往framework层传共享内存_xuhui_7810的专栏-CSDN博客

下载repo:
​​​​​​​mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
## 如果上述 URL 不可访问,可以用下面的:
## curl -sSL  'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
chmod a+x ~/bin/repo
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo > repo
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo  #如果没有权限,可下载至其他目录,并将其配置到环境变量中
chmod a+x /usr/local/bin/repo

源码下载

拉代码用如下,good

这个文档很好关于下载aosp和编译

Android 11 源码下载+编译教程 - 走看看
repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b froyo

repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r17
repo sync -j1 --fail-fast --force-sync    -j1不容易出错

repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r17
repo sync -j1 --fail-fast --force-sync
. build/envsetup.sh
lunch aosp_x86-eng
make -j16

下载AOSP源码

这里我使用的是外国语大学的镜像执行的下载,Mac系统的话,一定要在区分大小写的磁盘下执行
磁盘大小要200G以上。如果是编译aosp_x86-eng版本的话,磁盘大小可以设置 250G-300G 之间

repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r17
repo sync -j1 --fail-fast --force-sync

设置j1是因为尽量不出问题,虽然下载慢,但是一次就能下好,我试过j16经常出现EOF错误,j1一次就成功了

开始编译

. build/envsetup.sh
lunch aosp_x86-eng
make -j16

编译版本信息

PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=11
TARGET_PRODUCT=aosp_x86
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_ARCH=x86
TARGET_ARCH_VARIANT=x86
HOST_ARCH=x86_64
HOST_OS=darwin
HOST_OS_EXTRA=Darwin-19.6.0-x86_64-10.15.7
HOST_BUILD_TYPE=release
BUILD_ID=RP1A.201105.002
OUT_DIR=out
PRODUCT_SOONG_NAMESPACES=device/generic/goldfish device/generic/goldfish-opengl hardware/google/camera hardware/google/camera/devices/EmulatedCamera device/generic/goldfish device/generic/goldfish-opengl

问题1:这个是没有AOSP编译所需的Mac SDK,下载就好了

Could not find a supported mac sdk: ["10.10" "10.11" "10.12" "10.13" "10.14" "10.15"]

解决办法:

下载对应的SDK版本:https://github.com/phracker/MacOSX-SDKs/releases
然后移动到 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ 目录下解压,在执行 make -j16

问题2:这个是打开文件数限制,我们修改文件数量限制为2048即可

glob: open /Volumes/android-11/external/snakeyaml/src/main: too many open files

解决办法:

ulimit -S -n 2048

问题3:adb remount 提示 Read-only file system

解决:关掉模拟器,在启动参数后加上 -writable-system 后重新启动,然后再次adb remount,就可以看见remount succeeded了

emulator -writable-system

拉代码用如下,good

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest

repo sync

下载指定分支:

repo init -u https://android.googlesource.com/platform/manifest
-b android-4.2_r1

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b master

repo sync -j8

//asop-2.3.x

repo init -u https://android.googlesource.com/platform/manifest.git
-b gingerbread     

查看aosp所有分支

克隆代码仓库:

git clone git://mirrors.ustc.edu.cn/aosp/platform/manifest.git

$ mkdir ~/android/aosp-branches-tags
$ cd ~/android/aosp-branches-tags
$ git clone https://android.googlesource.com/platform/manifest.git
$ cd manifest
$ git tag

看远程分支:git branch -a

各种源

Arch Linux ARM 源使用帮助 — USTC Mirror Help 文档

清华大学开源软件镜像站 | Tsinghua Open Source Mirror

AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

下代码用repo sync -f -j8

Embedded Android    好书

Improving the Boot Time of the Android OS》这篇论文

优秀技术文档

Jhuster的博客_Android 内核_51CTO博客

Jhuster的博客_Android 内核_51CTO博客

Embien Technologies

外文技术文档优秀

Android Boot Time Optimization – Android boot process

官方网站

Documentation  |  Android 开发者  |  Android Developers

         https://developer.android.google.cn/         

Android Development

接口和软件包  |  Android 开源项目  |  Android Open Source Project

学习Android

如何自学Android? - 知乎

Tutorials

优秀:

Gityuan博客 | 袁辉辉的技术博客

Android 操作系统架构开篇 - Gityuan博客 | 袁辉辉的技术博客

Gityuan的博客_CSDN博客-android领域博主

yuanhuihui (Gityuan) · GitHub

Android是怎么启动的-[Android取经之路]_IngresGe 的专栏-CSDN博客_android取经之路

Android Framework01-启动流程 - 随笔分类 - 安卓笔记侠 - 博客园

good hidl jni:

AndroidQ 打通应用层到HAL层---(JNI服务和AIDL服务实现)_DJLZPP的博客-CSDN博客

android HIDL HAL控制LED demo(一)之C++作客户端 - it610.com

JAVA层HIDL服务的注册原理-Android10.0 HwBinder通信原理(八)_IngresGe 的专栏-CSDN博客

Android Framework01-启动流程 - 随笔分类 - 安卓笔记侠 - 博客园

安装投屏软件

sudo snap install scrcpy

orsudo apt-get install scrcpy

优秀,手机就是开发板

GitHub - aggresss/PHDemo: 《手机就是开发板》 所提到的文档,代码和程序

framework

Android FrameWork底层开发视频全套_简-CSDN博客

https://blog.csdn.net/huaxun66/category_7203839.html

将系统属性作为 API 实现  |  Android 开源项目  |  Android Open Source Project

安装管理

android studio bundle和android studio ide区别及android-studio-bundle的最新版下载地址_点滴的幸福-CSDN博客

中文指南

AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载

基础:

标签:"Android基础"相关文章 - 程序员大本营

标签:"Android基础"相关文章 - 程序员大本营

编译

编译 Android  |  Android 开源项目  |  Android Open Source Project

Android.mk

Android.mk  |  Android NDK  |  Android Developers

Android.mk  |  Android NDK  |  Android Developers

manifest.xml

清单  |  Android 开源项目  |  Android Open Source Project

Android Hal

Android HAL 开发 (1)【图文】_buaadallas_51CTO博客

android HAL 教程(含实例) - f9q - 博客园

android HAL 教程(含实例) - f9q - 博客园

安卓平台下的GPS架构介绍及驱动移植记录 | 易学教程      hidl

android HAL 教程(含实例) - f9q - 博客园

linux&Android

Jollen 網路學院 2020 :: Embedded Linux Consulting and Training :: 嵌入式 Linux 顧問與教育訓練

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值