一、ubuntu 常用命令
解压tar.gz到指定文件夹
tar -zxvf demo.tar.gz -C /.
移动指定文件到指定文件夹
sudo mv android-studio /opt/
ps -ef 显示所有进程
kill -s 9 PID 杀死指定进程
ps -a 查看所有进程
ps -e 查看除内核以外的所有进程
ps -f 全格式输出
强制删除文件名
sudo rm -r 文件名
强制删除文件夹并不提示
sudo rm -rf 文件名
find基本上相当于 linux下的 “搜索” , 相当于windows下的搜索功能! 它是用来搜索文件的。
grep是用来搜索文本的, 用来在standard input或文件内部的内容中, 来搜索文字 内容的!
find 是完全匹配(通配符),而grep是包含匹配(正则表达式)
find 用于搜索文件
默认是当前路径
find -name ".txt"
find -name ".apk" |grep "package"
adb shell "dumpsys meminfo |grep 包名"
aosp编译命令
source build/envsetup.sh
如果是 Android13, lunch sdk_phone_x86_64
lunch aosp_x86_64-eng
make -j16
emulator
第一节课笔记
1、aosp是一个很大的项目,由多个子项目,要使用git.
cd framework
git init
git add *
git commit -m "init"
2、shutdown /s /t 3600 一小时后定时关机
/s:关闭计算机。
/t <秒数>:设置关机倒计时(单位:秒)。
3、命令行抓日志
adb logcat
adb logcat -c 清除旧的日志
adb logcat | findstr "keyword"
4、vi用到的不熟的命令行
:w 保存文件
:wq 或 :x 保存并退出
:q! 强制退出(不保存)
5、框架尽量少导入包,尽量写全路径,android.util.log.i()
6、只修改了framework的代码,掌握这些命令可以显著提升 AOSP 开发效率,避免不必要的全量编译!
a、make framework---仅 Framework 层生成,out/target/product/<设备名>/system/framework/
b、make systemimage--生成 Android 系统的 system 分区镜像(system.img),包含所有系统级应用、库、框架和配置文件,out/target/product/<设备名>/system.img
7、清理编译结果:
全清理:make clean(删除 out/ 目录)。
部分清理:make installclean(保留部分缓存,加速下次编译)。
8、在 AOSP(Android 开源项目) 的全编译(make -jN)后,out 目录是编译产物的核心输出目录。以下是 out 目录中生成的主要文件及其作用:
out/
├── host/ # 主机端工具和库
│ ├── linux-x86/ # Linux 平台工具
│ │ ├── bin/ # 可执行文件(adb, fastboot, make)
│ │ └── lib/ # 主机端库文件
│
└── target/ # 目标设备相关输出
└── product/aosp_x86_64/ # 设备名(如 aosp_x86_64)
├── system.img # 系统分区镜像
├── userdata.img # 用户数据镜像
├── boot.img # 启动镜像
├── ramdisk.img # 初始内存磁盘镜像
├── obj/ # 中间编译对象文件
│ ├── APPS/ # 应用编译中间文件
│ └── KERNEL_OBJ/ # 内核编译中间文件
└── system/ # 系统分区内容(未打包成镜像的原始文件)
├── framework/ # 框架层 JAR 包
├── app/ # 系统应用
├── lib/ # 原生库
└── build.prop # 系统属性配置