当前位置: 首页 > news >正文

Android源码学习快捷手册

Android源码学习快捷手册

1、编译Android源码

1、. build/envsetup.sh
2、lunch,这里我们选择:6 –-- > aosp_x86_64
3、make ANDROID_COMPILE_WITH_JACK=false(跳过jackserver错误)
附加:make报错,可以先清除缓存:make clean
4、执行命令:emulator

需要再次emulator,没有修改不需要make,有修改需要make
1、. build/envsetup.sh
2、lunch
3、执行命令:emulator

2、加载源代码到 AndroidStudio(在frameworks中的java代码可跳转)

1、. build/envsetup.sh(source可以用 .代替,即". build/envsetup.sh")
2、lunch,并选择要编译的项目
3、make idegen -j4(这里的 -j4表示用 4线程来编译,可以不加)
4、development/tools/idegen/idegen.sh(报错find: ‘out/target/product/generic_x86_64/root/d’: Permission denied没有关系不影响ipr和iml文件生成)
5、替换android.ipr,android.iml文件

3、Android 调试:logcat输出日志

1、adb shell进入 Android 设备的命令行环境
2、logcat -c:清空日志;logcat:输出所有日志;logcat -s ActivityManager:只看 TAG:ActivityManager 的日志

4、ubuntu20.04启动AndroidStudio

1、cd AndroidStudio/android-studio-ide-193.6626763-linux/android-studio/bin进入bin目录
2、./studio.sh命令行启动

5、查看Android设备的进程(根据进程查看日志)

1、adb shell:进入 Android 设备的命令行环境
2、ps -A:查看所有进程;ps -A | grep “setting”:查看setting进程
3、logcat | grep “1729”:查看单个进程的日志

6、扩容ubuntu磁盘空间

1、df -h:显示磁盘占用空间
2、sudo gparted:打开gparted图形化界面
附加:如果没有下载gparted,可通过sudo apt-get install gparted下载

7、AndroidStudio快捷键

1、文件中跳转到某一行:Ctrl+G
2、查找某一个文件:双击Shift
3、查找当前java类中某个方法:Ctrl+F12

8、Android源码打印堆栈

android.util.Log.i("test1","Activity onCreate", new Exception());
附加:当出现跨进程调用,堆栈打印不了,可以通过方法名搜索:
grep "\.scheduleLaunchActivity" ./ -rn(当前目录(./)下递归搜索所有文件,查找包含 .scheduleLaunchActivity 的行,并显示这些行所在的文件名和行号)

9、ADB查看当前最上层的activity、在目录中查找内容

1、查看当前Resumed的activity:adb shell dumpsys activity activities | grep "Resumed"
附加:查看所有的activity:adb shell dumpsys activity activities"
2、查看当前activity对应的apk包名:adb shell dumpsys package activities com.android.luncher
3、在当前目录及子目录中包含 “Launcher2” 的文件,并且输出匹配的文件名、行号:grep "Launcher2" ./ -rn,如果需要双重检索:grep "Launcher2" ./ -rn | grep "surfice"

10、查找当前目录和其子目录是否包含某个文件名

1、查找当前目录和子目录是否存在init.rc文件:find . -name "init.rc"

11、研究AMS,需要打印log分析

1、进入ActivityManagerDebugConfig.java文件,将static final boolean DEBUG_ALL = true

12、查看系统中所有的服务

1、通过service list实现

13、加载native代码到vscode,快捷键使用

1、查找当前工程中某个文件:ctl+p
2、查找当前cpp文件中某个方法展示出方法列表 :ctl+shift+o
3、返回上一个操作:在Linux中可以使用快捷键Ctrl+Alt + -

14、查看当前aosp的版本

1、在编译后的generic_x86_64文件下查找:cat out/target/product/generic_x86_64/system/build.prop | grep "ro.build"
2、更简便的查询方法:grep PLATFORM_VERSION build/core/version_defaults.mk

15、linux命令行常用指令

1、ls -ld /home/share:-l = 长格式显示,-d = 只看目录本身,-ld = 显示这个目录本身的详细信息(权限、属主、大小等),不进入目录。
2、mkdir -p /data/share:可以建立多级目录,不会出错。

16、ADB推送或者拉取文件

adb push test.txt /sdcard/:推送单个文件,adb push -p test.zip /sdcard/:可以显示进度条。
adb push D:\test\a.txt /sdcard/
adb pull /sdcard/log.txt:拉取日志
注意:/system/,/data/data/目录需要adb rootadb remount
无线调试:adb connect 192.168.1.10:5555,需要打开无线调试,同连一个wifi

http://www.jsqmd.com/news/868691/

相关文章:

  • 建筑施工行业仓储数字化转型实践:冠唐云仓库应用分析
  • 人工智能崛起重塑汽车维修行业---对汽修从业者意味着什么?
  • 使用SW2000TSN增加激光雷达接入端口
  • dumpsys netstats detail 输出解释netd的app的网络流量统计
  • 为什么选择SecHex-Spoofy?对比5款HWID工具,这款开源神器究竟强在哪里
  • 如何高效下载QQ音乐资源:5个简单步骤掌握res-downloader嗅探技术
  • 多GPU科学计算框架性能评测与优化实践
  • 均衡传播算法(EP)原理与硬件实现优势
  • 终极指南:如何安全使用Awesome Agent Skills在技术创新与法律监管间找到平衡点
  • AI INFRA之NVIDIA GPUDirect节点内和节点间通信原理详解
  • API 的分布式世界 vs COM 的语言桥梁:典型应用场景深度解析
  • 傲梅分区助手下载安装教程和扩容C盘分区调整教程 (附安装包)
  • 终极指南:如何用OpenPilot为您的爱车升级智能驾驶系统
  • Open Generative AI批处理队列:如何高效管理多个AI生成任务
  • 微信小程序 思政考核管理系统
  • 计算机视觉——九、图像分割
  • 浙江乘风财务咨询有限公司2026电商财税方案公司十强:杭州疑难税务代办/财税咨询/解决财税合规方案机构推荐浙江乘风财务咨 - 栗子测评
  • 2026年照片去水印软件app排行榜|免费去水印工具实测推荐
  • Keil MDK USB加密狗驱动安装与许可证问题解决指南
  • Redis知识8之哨兵
  • Windows提权(一)———系统内核溢出漏洞提权
  • git指令学习
  • 【Feed 高并发架构实战】:雪花 ID + 三级缓存 + 计数旁路设计详解
  • 运算符的种类以及基本用法
  • Linux 进程地址空间
  • HTML实现DOCX文档版题库图文考试系统(修订)
  • ikd-Tree:FAST-LIO2中的增量式地图管理结构
  • 求职用前程无忧还是智联招聘?选对平台少走弯路
  • prerender-loader完全指南:轻松实现Webpack预渲染提升首屏加载速度
  • nodejs后端服务如何接入taotoken实现异步调用多模型对话能力