哪些網(wǎng)站做外鏈好搜索引擎營(yíng)銷的特點(diǎn)是什么
寫給應(yīng)用開發(fā)的 Android Framework 教程——玩轉(zhuǎn)AOSP篇之 Android 系統(tǒng)開發(fā)工具推薦
下面推薦的是我常用的工具,如果你有好用的開發(fā)工具歡迎在評(píng)論區(qū)留言討論交流。
1. SSH 服務(wù)與 Tabby Terminal
SSH 服務(wù)使得我們?cè)谄渌脚_(tái)上通過 SSH 客戶端程序即可訪問到我們的 linux 服務(wù)器。方便我們的開發(fā)工作。
接下來我們分為兩步來介紹 ssh 服務(wù)的搭建以及客戶端的使用:
1.1 配置 Ubuntu ssh 服務(wù)
- 安裝 openssh-server
sudo apt install openssh-server
# 開機(jī)自啟動(dòng)
sudo systemctl enable ssh
# 重啟 ssh 服務(wù)
sudo systemctl restart ssh
- 配置固定 IP 地址
sudo apt install net-tools -y
cd /etc/netplan
# 備份舊的配置文件
sudo cp 00-installer-config.yaml 00-installer-config.yaml_before
# 修改配置文件:
sudo vim 00-installer-config.yamlnetwork:version: 2renderer: NetworkManagerethernets:enp0s5: # 網(wǎng)卡名稱dhcp4: no # 關(guān)閉dhcpdhcp6: noaddresses: [10.0.0.89/24] # 靜態(tài)ip,根據(jù)自己網(wǎng)絡(luò)情況配置gateway4: 10.0.0.1 # 網(wǎng)關(guān),根據(jù)自己網(wǎng)絡(luò)情況配置nameservers:addresses: [10.0.0.1, 114.114.114.114] #dns,根據(jù)自己網(wǎng)絡(luò)情況配置
使配置生效:
sudo netplan apply
至此,固定 IP 就配置好了。
1.2 ssh 客戶端 Tabby Terminal
Tabby 是一款高顏值,開源,免費(fèi),多平臺(tái)的命令行工具,ssh 客戶端是它的功能之一。
我們?cè)?Tabby官網(wǎng) 下載安裝好后,配置好 ssh 連接配置信息即可使用 ssh 服務(wù)。
配置的過程如下:
-
點(diǎn)擊配置
-
點(diǎn)擊配置與連接
-
點(diǎn)擊新配置
-
下滑菜單,選擇
SSH 連接
-
輸入 ssh 服務(wù)信息
- 名稱,隨意
- 主機(jī)填寫 linux 的固定 IP 地址,端口 22
- 用戶名填寫實(shí)際用戶名
- 點(diǎn)擊設(shè)置密碼,添加用戶名對(duì)應(yīng)的密碼
- 點(diǎn)擊保存
-
鼠標(biāo)移動(dòng)至 UbuntuForAndroid 選項(xiàng),點(diǎn)擊三角形
-
進(jìn)入遠(yuǎn)程 ssh 終端界面
至此,我們就可以遠(yuǎn)程管理我們的 linux 了。
2. vim
vim 主要用于文件的簡(jiǎn)單修改,需要掌握:
- 文件的簡(jiǎn)單修改
- 文件內(nèi)容搜索
2.1 vim 基本使用
2.1.1 一般模式
通過 vim + 文件名
,進(jìn)入 vim 環(huán)境(test.txt 可以是當(dāng)前目錄已存在的文件,也可以是當(dāng)前目錄不存在的文件。):
vim test.txt
此時(shí),我們?cè)?vim 的一般模式下,如果 test.txt 文件有內(nèi)容,我們可以通過:
- j 下移光標(biāo)
- k 上移光標(biāo)
- h 左移光標(biāo)
- l 右移光標(biāo)
如果用的不習(xí)慣,上下左右方向鍵也可以移動(dòng)光標(biāo)。
2.1.2 編輯模式
在一般模式下,輸入 a i o 可以進(jìn)入編輯模式,編輯模式下,我們可以輸入文本修改文件內(nèi)容。
a i o 的區(qū)別如下:
- a:在當(dāng)前光標(biāo)下一位插入
- i:當(dāng)前光標(biāo)處插入
- o:換行并創(chuàng)建全新空白行,并在行首插入
在編輯模式下,我們點(diǎn)擊 esc 鍵即可回到一般模式。
2.1.3 命令行模式
在一般模式下,輸入分號(hào),就會(huì)進(jìn)入命令行模式。在命令行中,可以輸入不同的指令或者字符串以實(shí)現(xiàn)不同的功能。其中涉及的最常用的功能包括了兩類:
- 退出 vim
- 當(dāng)前文本中,搜索字符串
進(jìn)入命令行模式后,有三種方式來退出 vim:
- 當(dāng)前文件沒有做任何改變時(shí),輸入
q
指令,退出 vim 環(huán)境 - 當(dāng)前文件做了一些修改,如果想放棄已修改的內(nèi)容,輸入
q!
指令,退出 vim 環(huán)境 - 當(dāng)前文件做了一些修改,如果想保存已修改的內(nèi)容,輸入
wq
指令,退出 vim 環(huán)境
進(jìn)入命令行模式后,我們還可以輸入 /
+ 字符串,點(diǎn)擊回車鍵,進(jìn)入搜索模式,點(diǎn)擊 N 鍵,光標(biāo)就會(huì)在匹配處依次跳動(dòng)。
在一般模式下,我們也可以直接輸入 /
+ 字符串進(jìn)行搜索。
2.1.4 vim 基本使用小結(jié)
vim 編輯器的三種模式間切換如下圖所示:
3. find + grep 命令
Android 系統(tǒng)源碼繁雜,通常我們通過 find 命令來查找我們關(guān)心的文件。使用 find + grep 命令查找我們關(guān)心的文件內(nèi)容。
- 找文件,比如 service_manager.c
find . -name "service_manager.c"
./frameworks/native/cmds/servicemanager/service_manager.c
- 找文件內(nèi)容,找 recyclerview 庫(kù)
find . -name "Android.bp" | xargs grep "name: \".*recyclerview.*\""
./prebuilts/sdk/current/androidx/Android.bp: name: "androidx.recyclerview_recyclerview-selection-nodeps",
./prebuilts/sdk/current/androidx/Android.bp: name: "androidx.recyclerview_recyclerview-selection",
./prebuilts/sdk/current/androidx/Android.bp: name: "androidx.recyclerview_recyclerview-nodeps",
./prebuilts/sdk/current/androidx/Android.bp: name: "androidx.recyclerview_recyclerview",
./prebuilts/sdk/current/support/Android.bp: name: "android-support-recyclerview-selection-nodeps",
./prebuilts/sdk/current/support/Android.bp: name: "android-support-recyclerview-selection",
./prebuilts/sdk/current/support/Android.bp: name: "android-support-v7-recyclerview-nodeps",
./prebuilts/sdk/current/support/Android.bp: name: "android-support-v7-recyclerview",
4. Samba 服務(wù)器搭建
Samba 是一款數(shù)據(jù)共享的軟件,可用于 Ubuntu 與 Windows 之間共享源代碼,傳輸文件。
Ubuntu 安裝 samba 服務(wù)端:
sudo apt install samba
配置 samba,修改 /etc/samba/smb.conf,添加如下內(nèi)容:
[Project]comment = projectpath = /home/zzh0838/Project #你自己需要共享的目錄browseable = yeswritable = yes
后續(xù)操作:
chmod 777 /home/zzh0838/Project
sudo smbpasswd -a username #這里是當(dāng)前用戶名
sudo systemctl enable smbd #samba 開機(jī)自啟動(dòng)
sudo systemctl restart smbd #重啟 samba
windows 訪問 Ubuntu 共享的文件鍵:
win 鍵加 R 鍵,跳出運(yùn)行窗口,輸入 \\10.0.0.89
,其中 10.0.0.89
是我的 ubuntu 的 IP 地址,你需要根據(jù)你自己的情況修改為自己的 Ubuntu 的 IP 地址。
點(diǎn)擊確定,即可訪問到 Ubuntu 中共享的文件了:
雙擊 Project,進(jìn)入到下面的文件夾中:
Idegen + Android Studio 查看源碼
source build/envsetup.sh
lunch aosp_x86_64-eng
make idegen -j16mmm development/tools/idegen
development/tools/idegen/idegen.sh
完成上面的操作后,就會(huì)在源碼下生成 android.ipr 和 android.iml 文件
打開 Android Studio,File->open,選擇 android.ipr 文件。
5. AIDEGen + Android Studio
5.1 準(zhǔn)備工作
AIDEGen,我叫它 “愛得跟”,大概是 Android10 中,google 推出的一個(gè)工具,用于方便開發(fā)者使用 IDE 來查看和修改系統(tǒng)源碼。
使用 “愛得跟” 之前我們需要做一些準(zhǔn)備工作,編譯 sdk:
source build/envsetup.sh
lunch sdk-eng
# or
#lunch sdk-userdebug
# or
#lunch sdk-user
make sdk
接著我們需要去 google 官方下載 Android Studio,并將其放到 /opt 目錄下。
接下來,選擇我們的目標(biāo) Product:
source build/envsetup.sh
lunch aosp_x86_64-eng
做好以上準(zhǔn)備工作后,我們就可以打開系統(tǒng)模塊了,這里我們以 Settings 為例:
# Settings 更換為其他模塊名或是模塊存在的路徑即可打開其他模塊
aidegen Settings -i s # -i 表示使用ide,s 表示 Android Studio
5.2 Android Studio 配置
稍作等待,Android Studio 就打開了,不過現(xiàn)在還不能直接使用,我們還需要做一些基本的配置:
5.2.1 添加源碼中的 jdk 和 sdk
Android Studio 打開后,右下角會(huì)出現(xiàn)一個(gè)提示框(如果沒有出現(xiàn),點(diǎn)擊 file -> Invalidate Caches -> Invalidate and Restart):
點(diǎn)擊 Configure,出現(xiàn)以下界面:
點(diǎn)擊 ok 即可。
接著配置 jdk 和 sdk,點(diǎn)擊 file -> Project Structure:
接著點(diǎn)擊 + 號(hào):
點(diǎn)擊 Add JDK
:
選擇源碼下的 prebuilts/jdk/jdk9/linux-x86
,然后點(diǎn)擊 ok:
接著將 name 修改為 aosp10-jdk9,然后點(diǎn)擊右下角 apply:
接著點(diǎn)擊 + 號(hào),添加 Android SDK:
選擇系統(tǒng)源碼目錄下的 out/host/linux-x86/sdk/sdk/android-sdk_eng.zzh0838_linux-x86
(最后一個(gè)文件夾的名字和你的用戶名相關(guān),你的和我的可能不一樣),然后點(diǎn)擊 ok:
接著 Java SDK 選擇剛剛添加的 aosp10-jdk9,點(diǎn)擊 ok:
接著,修改 skd 的名字為 aosp10-android-sdk29:
點(diǎn)擊 ok 即可。
5.2.2 配置項(xiàng)目的 sdk
接著我們需要配置項(xiàng)目的 sdk,點(diǎn)擊 file -> Project Structure,點(diǎn)擊左側(cè) Project,右側(cè) SDK 選項(xiàng)選擇 aosp10-android-sdk:
點(diǎn)擊左側(cè) Modules,中間選擇 Settings,右側(cè) Module SDK 選擇 Project SDK:
接著,中間選擇 dependencies-Settings,右側(cè) Module SDK 選擇 Project SDK:
最后點(diǎn)擊 apply,項(xiàng)目開始重新索引,項(xiàng)目?jī)?nèi)絕大部分類方法變量均可正確跳轉(zhuǎn)。
至此,配置完成。
5.3.3 在 Android Stuido 中調(diào)試系統(tǒng)App Settings
首先,我們開一個(gè)新的終端,打開模擬器:
source build/envsetup.sh
lunch aosp_x86_64-eng
emulator
接著我們?cè)?Settings/AndroidManifest.xml 查找到 Settings App 的首 Activity 為 SettingsHomepageActivity,我們?cè)谄?onCreate 出打一個(gè)斷點(diǎn):
接著在 Android 模擬器中打開 Settings 應(yīng)用。
接著點(diǎn)擊 android studio 的 debug 按鈕:
在彈出的窗口中,依次選擇 Settings 和 com.android.settings,然后點(diǎn)擊 ok:
在模擬器中,點(diǎn)擊返回鍵,再次進(jìn)入 Settings 應(yīng)用,即可進(jìn)入調(diào)試界面:
接著我們就可以順利的進(jìn)行調(diào)試了。
6. VSCode
VSCode 是一款微軟推出的文本編輯器,同個(gè)它的插件系統(tǒng)可以實(shí)現(xiàn)類 ide 的體驗(yàn),在功能性和適應(yīng)性角度,非常適合用于 Android 系統(tǒng)開發(fā)。
我們可以通過兩種方式來使用 VSCode
- Ubuntu 本機(jī)使用
- Windows 通過 remote-ssh 插件遠(yuǎn)程使用 VSCode 編輯linux 上的代碼
6.1 Ubuntu 本機(jī)使用
首先是安裝 VScode,在官網(wǎng)下載好 deb 格式的安裝包,接著安裝:
sudo dpkg -i code_1.76.2-1678817801_amd64.deb
這樣我們就可以使用 vscode 了,我們打開 vscode,然后通過 file -> open folder 選擇我們的系統(tǒng)源碼,即可打開整個(gè)系統(tǒng)源碼。
當(dāng)然,我們根據(jù)需要只打開我們關(guān)心的模塊。
另外為了使我們的 vscode 更好用更好看,通常我們會(huì)安裝一下一些插件:
- C/C++ Extension Pack
- Extension Pack for Java
- Makefile Tools
- RC Script language
- Android System Tools
- Android Studio Color Theme
6.2 遠(yuǎn)程使用
在 Windows 下,我們也可以通過 VSCode 的 remote-ssh 插件遠(yuǎn)程修改我們的系統(tǒng)源碼。
首先我們需要在官網(wǎng)下載好 VSCode 的安裝包,然后打開安裝包狂點(diǎn)下一步即可安裝好 VSCode。
接著在插件市場(chǎng)中安裝好 Remote-SSH 插件。
接著就可以配置 SSH 遠(yuǎn)程連接了:
點(diǎn)擊左側(cè) remote-explorer 圖標(biāo),點(diǎn)擊右側(cè)加號(hào):
在彈出的輸入框中,輸入 用戶名@IP地址
,點(diǎn)擊回車。
接著,選擇第一個(gè)配置文件,點(diǎn)擊回車。
接著,左側(cè)的清單中就會(huì)出現(xiàn)我們配置的 10.0.0.89,點(diǎn)擊右側(cè)有個(gè)加號(hào)的文件圖標(biāo):
彈出新的 VSCode 窗口,我們點(diǎn)擊 File -> Open Folder,然后選擇我們的源碼路徑即可:
打開的過程中,需要我們輸入 Ubuntu 的登錄密碼。我們也可以通過配置,實(shí)現(xiàn)免密登錄的效果:
打開 win 上的 PowerShell:
# 生成公鑰
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
將公鑰文件的內(nèi)容拷貝到 ubuntu 的 ~/.ssh/authorized_keys 中
ubuntu 重啟 ssh 服務(wù)
sudo systemctl restart ssh
7. adb
最后,我們?cè)诮榻B adb 的兩個(gè)常用功能
- adb push:將開發(fā)機(jī)上的文件上傳到 Android 機(jī)器上
touch testfile
# 一些臨時(shí)文件
adb push ./testfile /data/local/tmp
- adb shell:用于進(jìn)入 Android 的 shell 終端