干货分享 | Android 开发常用「命令行」汇总!

78 阅读8分钟

大家好,我是牢鹅!作为一名摸爬滚打多年的 Android 程序员,深知命令行在开发过程中的重要性。命令行用好了,效率提升可不是一星半点。今天就来跟大家好好聊聊 Android 日常开发中那些常用的命令行,从 Gradle 到 ADB、Apktool,再到 Git、Linux 命令等,保证干货满满,而且尽量说得通俗易懂,让你听得懂、用得上!(本期内容干货满满,篇幅较长,建议收藏转发,慢慢阅读,希望对你有帮助!)图片

一、Gradle:构建项目的管家

Gradle可以说是 Android 开发中构建项目的核心了,熟练掌握它的命令能让我们在构建、打包等操作中事半功倍。

常用命令

./gradlew assembleDebug:生成调试版本的APK,方便开发过程中快速测试。• ./gradlew assembleRelease:生成正式发布的APK,包含代码混淆等优化操作。• ./gradlew clean:清理项目,删除旧的构建文件,避免构建冲突。• ./gradlew build:完整构建项目,包括编译代码、打包资源等。• ./gradlew tasks:列出项目中所有可用的任务,方便你查看Gradle支持的操作。• ./gradlew check:运行项目的检查任务,比如代码检查、单元测试等。• ./gradlew assembleDebug --stacktrace:如果构建失败,加上--stacktrace可以查看详细的错误堆栈信息。• ./gradlew assembleDebug --info:在构建过程中输出更多的调试信息,方便排查问题。• ./gradlew assembleDebug --scan:生成一个Gradle构建扫描报告,帮助你分析构建性能和问题。• ./gradlew assembleDebug --offline:在离线模式下构建项目,适合没有网络环境的场景。• ./gradlew installDebug: 不仅会构建 Debug 版本的 APK,还会自动将其安装到连接的设备上,省去了我们手动拖放安装的步骤,非常方便。对应的, ./gradlew installRelease 会安装 Release 版本的 APK,但同样需要先处理好签名问题。• ./gradlew uninstallDebug: 能卸载设备上的 Debug 版本应用,当我们需要干净地重新安装时,这个命令就派上用场了。

二、ADB:和设备交互的桥梁

ADB(Android Debug Bridge)是一个非常重要的工具,通过它的命令,我们可以实现安装应用、查看日志、调试等多种操作,让你可以通过电脑来控制手机。

常用命令

adb devices:查看当前连接到电脑的设备列表。

adb install <path-to-apk> :安装APK文件到设备上。

adb uninstall <package-name> :卸载指定包名的APP。

adb logcat:查看设备的日志输出,帮助调试问题。

adb shell:进入设备的命令行模式,可以运行Linux命令。

adb pull <remote-file> <local-file> :从设备上拉取文件到电脑。

adb push <local-file> <remote-file> :将文件从电脑推送到设备上。

adb reboot:重启设备。

adb kill-server:关闭ADB服务。

adb start-server:启动ADB服务。

adb shell am start -n <package-name>/<activity-name> :启动指定的Activity。

adb shell input keyevent <event-code> :模拟按键事件,比如adb shell input keyevent 4表示返回键。

adb shell input tap <x> <y> :模拟屏幕点击事件。

adb shell input swipe <x1> <y1> <x2> <y2> :模拟屏幕滑动事件。

adb shell pm list packages:列出设备上安装的所有包名。

adb shell pm clear <package-name> :清除指定APP的数据。

adb shell dumpsys meminfo <package-name> :查看指定APP的内存使用情况。

adb shell dumpsys cpuinfo:查看设备的CPU使用情况。

三、Apktool:反编译与重打包的好帮手

apktool 是个非常实用的工具,有时候,我们可能需要查看一个APK文件的内部结构,分析第三方应用,比如它的资源文件、布局文件等。这时候,Apktool就派上用场了。

常用命令

apktool d <path-to-apk> :反编译APK文件,解压出资源文件和布局文件。•apktool b <path-to-decompiled-folder> :重新打包APK文件。•apktool d <path-to-apk> -o <output-folder> :指定反编译后的输出目录。•apktool b <path-to-decompiled-folder> -o <output-apk> :指定重新打包后的APK文件名。•apktool if <framework-res.apk> :安装框架资源文件,用于反编译系统APP。•apktool d <path-to-apk> --no-src:反编译时不提取源码文件,只提取资源文件。•apktool d <path-to-apk> --no-res:反编译时不提取资源文件,只提取源码文件。•apktool d <path-to-apk> --only-main-classes:只反编译主类文件,忽略其他类文件。•apktool b <path-to-decompiled-folder> --use-aapt2:使用AAPT2工具进行打包,适用于较新的Android版本。•apktool d <path-to-apk> --force:强制覆盖已存在的输出目录。

四、Git:版本控制的必备技能

Git是一个版本控制系统,它可以帮助你管理代码的版本。作为目前最流行的版本控制系统,在团队开发和个人项目管理中都必不可少,掌握它的常用命令能让我们更好地进行代码管理。

常用命令

git init:初始化一个Git仓库。执行后会生成一个.git 目录,里面包含了 Git 仓库的所有信息。•git add <file> :将文件添加到暂存区。•git clone 仓库地址 :可以克隆远程仓库到本地,比如**git clone https://github.com/example/myproject.git,就会把远程的 myproject 仓库克隆到本地。•git commit -m "commit message"** :提交代码,并添加提交信息。•git pull:从远程仓库拉取代码。•git push:将代码推送到远程仓库。•git status:查看当前仓库的状态,包括哪些文件被修改了。•git log:查看版本历史记录。•git branch:查看当前仓库的所有分支。•git checkout <branch-name> :切换到指定的分支。•git merge <branch-name> :将指定分支的代码合并到当前分支。•git branch -d <branch-name> :删除指定的分支。•git stash:将当前未提交的更改暂存起来,方便切换分支。•git stash pop:恢复暂存的更改。•git diff:查看文件的修改差异。•git reset --hard:将代码回退到最近一次提交的状态。•git revert <commit-id> :撤销指定的提交。•git blame <file> :查看文件的每一行是谁提交的。•git remote -v:查看远程仓库的地址。

五、Linux命令:基于命令行的操作系统指令

在Android开发中,我们经常会在Linux环境下工作,比如使用Linux服务器或者在Mac电脑上开发。掌握一些常用的Linux命令是非常有帮助的。

常用命令

ls:列出文件和目录。•cd:切换目录。•cd /path/to/directory:切换到指定目录。•cd .. :切换到上一级目录。•cp:复制文件或目录。•cp file1.txt /home/user/backup:将file1.txt复制到/home/user/backup目录。•cp -r folder1 /home/user/backup:递归复制整个目录。•mv:移动文件或或重命名文件。•mv file1.txt /home/user/backup:将file1.txt移动到/home/user/backup目录。•mv oldname.txt newname.txt:将文件oldname.txt重命名为newname.txt。•rm:删除文件或目录。•rm file1.txt:删除文件file1.txt。•rm -r folder1:递归删除整个目录。•rm -f file1.txt:强制删除文件,不提示确认。•mkdir:创建目录。•mkdir newfolder:创建一个名为newfolder的目录。•mkdir -p /home/user/project/subfolder:递归创建多级目录。•rmdir:删除空目录。•chmod:修改文件权限。•chown:修改文件的所有者。•find:查找文件。•find /home/user -name "*.txt" :在/home/user目录下查找所有扩展名为.txt的文件。•find . -type f -size +10M:查找当前目录下所有大于10MB的文件。•grep:搜索文件内容。•grep "error" log.txt:在log.txt文件中搜索包含“error”的行。•grep -r "error" /home/user/logs:递归搜索/home/user/logs目录下所有文件中包含“error”的内容。•cat file1.txt:查看文件file1.txt内容。•less:分页查看文件内容。•head:查看文件的前几行。•tail:查看文件的后几行。•touch:创建空文件或更新文件时间戳。•ps:查看当前运行的进程。•kill:终止进程。•top:查看系统资源使用情况。•df:查看磁盘空间使用情况。•du:查看文件或目录的大小。

六、网络命令:排查网络问题的助手

在开发涉及网络请求的应用时,我们经常需要调试网络请求。掌握一些网络命令可以帮助你快速定位问题。

常用命令

ping:测试网络连通性。•ping google.com:向google.com发送ICMP请求,测试网络连通性。•ping -c 4 google.com:向google.com发送4次ICMP请求。•curl:发送网络请求,测试API接口。•curl -X GET https://api.example.com/data:发送GET请求到指定的API接口。•curl -X POST -d '{"key":"value"}' -H "Content-Type: application/json" https://api.example.com/submit:发送POST请求,提交JSON数据。•curl -I https://api.example.com/data:只获取HTTP响应头。•netstat:查看网络连接状态。•telnet google.com 80:测试google.com的80端口是否开放。•ncnetcat):用于网络调试和数据传输。•traceroute:查看数据包的路由路径。•ifconfig:查看和配置网络接口。•ip addr:查看网络接口的IP地址。•ip route:查看和配置路由表。•ss:查看套接字信息,类似于netstat但更强大。•whois google.com:查询google.com的注册信息。•host google.com:查询google.com的IP地址。•nslookup google.com:查询google.com的DNS信息。•tcpdump:抓取网络数据包,用于分析网络流量。•wireshark:图形化工具,用于抓包和分析网络流量。

结语

好啦,以上就是牢鹅在 Android 开发中常用的一些命令行工具和命令,当然还有很多其他的命令和参数,在实际开发中可以根据具体需求去探索和使用。

这些工具和命令虽然看起来有点复杂,但其实只要多用几次,你就会发现它们非常实用。掌握这些命令,可以让你在开发过程中更加高效,也能帮助你快速定位和解决问题。

最后,持续高质量创作不易,欢迎大家关注我的公众号。如果你有什么问题或者其他好用的命令,欢迎在评论区交流讨论。添加牢鹅的微信:kris_wuii,加入我的GP出海交流群,一起交流学习。(此群主要面向交流谷歌政策、账号和上架问题的朋友,同时分享行业信息资源)