筆者最近接到一個很easy的任務,需要在Linux環(huán)境下連接手機,跑一個腳本,聽起來十分的容易,但是忙忙碌碌也是折騰了一天。因此,特地記下一些中途可能踩到的坑,給自己一個提醒。
我們都知道Android內(nèi)核其實是Linux,因此熟悉Linux系統(tǒng)對學習Android開發(fā)具有十分重要的意義。但是,我們暫時不會因為在Linux腳本而特定搞一個Linux系統(tǒng)或雙系統(tǒng)。因此,虛擬機安裝Linux就是我們最經(jīng)常選的方法。網(wǎng)
上有很多虛擬機+Linux的教程,比較常見的還是WMware+Ubuntu。unbuntu是Linux系統(tǒng)的一種,內(nèi)置了很多功能,可以再官網(wǎng)上找一個合適的版本下載。這里,提供一篇blog教程,寫的很詳細,還有問題小結(jié),個人覺得很用心,推薦:
VMware Ubuntu安裝詳細過程(點贊)
https://blog.csdn.net/u013142781/article/details/50529030
在Linux系統(tǒng)的Terminal(快捷鍵Ctrl+Alt+T)中輸入adb回出現(xiàn)提示安裝adb和adb tools,那么就按照提示操作輸入兩個命令:
sudo apt-get install adb
sudo apt-get install android-tools-adb
其中,sudo是獲取系統(tǒng)權(quán)限,這個很重要呀,很多時候都要用到,使用sudo的話一般需要輸入password,就是之前設(shè)置的Linux系統(tǒng)密碼;
接著,臉上設(shè)備,使用命令:
adb devices
出現(xiàn)了一串奇怪的問號:
這個是因為在系統(tǒng)文件中沒有指定相應的屬性,因而沒有權(quán)限,可以采用如下的方法解決該問題:
1、斷開設(shè)備,使用命令lsusb,結(jié)果如下:
然后linux命令,連接設(shè)備同樣,再次用lsusb命令:
可以看到第一行的Google Inc就是多出來的設(shè)備,記住id號18d1:4ee7;
2、在Terminal窗口使用如下命令
cd /etc/udev/rules.d
ls -l
為什么要先進到/etc/udev/rules.d目錄下呢,網(wǎng)上有很多人直接就給出命令vim /etc/udev/rules.d/70-android.rules來打開這個文件,但其實每個人在安裝完Linux之后這個文件名字會有差異,就像我這邊兒就有兩個文件一樣,這是一個大坑呀…
接著可以用
sudo vim /etc/udev/rules.d/51-android.rules
然后在里面增加一行:
SUBSYSTEM==“usb”, ATTRS{idVendor}“0bb4”,ATTRS{idProduct}“0c87”,MODE="0666"
其中0bb4和0c87替換成之前我們記下的id就可以;
3、重啟udev
sudo chmod a+rx /etc/udev/rules.d/51-android.rules
sudo service udev restart
4、拔掉設(shè)備,重啟adb
sudo adb kill-server
sudo adb start-server
(為什么,都有sudo,因為之前沒加sudo踩了大坑呀…)
連接設(shè)備,adb devices,看是否成功;
A:succeed,great
B:failed,go plan B
將上面的51-android.rules換成70-android.ruleslinux命令,就是另外一個文件名,然后重復的步驟走下來應該是可以成功的。
什么!。∧愀嬖V我還有C,/etc/udev/rules.d下沒有rules這個文件,好吧,那就走plan C,既然沒有這個文件那就新建一個51-android.rules: