1. 程式人生 > >Android問題之AS的DDMS打不開、file explorer檔案許可權問題

Android問題之AS的DDMS打不開、file explorer檔案許可權問題

更新AS DDMS問題:

我現在用的AS版本是3.1以上,它工具欄沒有了DDMS按鈕,但左下角有個DeviceFileExplorer,如下圖:

===========================================================

開啟AS的ddms時,首先遇到了這個問題如下:

1.嘗試先使用administor方式啟動monitor,沒成功;

2.因為我的機器裝了eclipse和AS,eclipse的android-sdk-windows\tools同樣也有monitor.bat檔案,對比兩個檔案大小不同,用這個monitor果真可以開啟;

3.雖然開啟DDMS,但顯示8700 埠被佔用,使用如下命令(lsof -i:8700)檢視哪個程序使用8700這個埠,結果是AS,kill程序,重啟好了;

參考:http://blog.csdn.net/lixin88/article/details/61925038(androidstudio 無法啟動ddms)

==================================

再來是file explorer檔案瀏覽器中的資料夾許可權問題,看了很多帖子:

http://blog.csdn.net/q394895302/article/details/52796883,(android studio關於真機除錯DDMS中的data資料夾打不開的解決方法

):

步驟:

1.進入SDK安裝目錄,找到platform-tools點選進去,按shift鍵並點選滑鼠右鍵選擇在命令列在此檔案路徑開啟;

2. 輸入adb shell,回車,然後再輸入 su ,回車進入許可權root模式

3.  輸入chmod -R 777 /data/ 回車即可。(-R 是對該目錄下所有資料夾都執行此操作,也可以不輸入-R,直接chmod 777 /data/ 也是一樣的),其中/data/是針對data資料夾,我的是storage,然後只是得到提示說這個資料夾只讀不能操作未能成功;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://blog.csdn.net/myweishanli/article/details/37592515,Unable to chmod ***: Read-only file system問題的解決方法:

1.ROOT你的手機
2.用adb shell登入後,用su root切換到root使用者,切換後顯示#號,表示切換成功
3.用mount命令重新載入檔案系統:mount -o rw,remount yaffs2 /system

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://blog.csdn.net/u013148287/article/details/52260795,Unable to chmod sdcard: Read-only file system,相同方法,這個更詳細些;這個更詳細,不過一開始不能看懂:http://blog.csdn.net/csdm_admin/article/details/53896755

sdcard資料夾沒有任何許可權   及  d- - - - - - - - -
通過如下方式可以更改:
 首先cmd下,
①如果直接到指定的目錄下  通過chomd  700 sdcard 
任然有 Unable to chmod sdcard: Read-only file system  則繼續②

        adb shell   進入到根使用者目錄下
mount -o remount rw /          重掛載檔案系統
   在通過   Chmod 700 sdcard 即可修改sdcard目錄許可權
              
此時:sdcard     許可權會變為  d rwx- - - - - - [多次實驗這個最有用]

-------------------------------------------------------------------------------------

https://www.cnblogs.com/Seven-cjy/p/6102164.html,DDMS中File Explorer無法檢視data/data檔案解決辦法,這篇文章裡圖文詳細說了檔案許可權的介紹;

-------------------------------------------------------------------------------------

http://blog.csdn.net/aurorayqz/article/details/65705300,Android Device Monitor 檔案管理的常見問題

裡面有好像是3個相關問題,主要是中間的問題2:File Explorer 中的檔案無法訪問?以及問題3:File Explorer 中的檔案無法 pull(下載)

複製裡面關於訪問許可權字元的一段話:

訪問許可權是 drwxrwx--x,這玩意是什麼意思呢?我相信,學過 Linux 的同學肯定一眼就知道這是什麼意思。不知道也沒關係,聽我慢慢道來,這一個字串一共有 10 個字元,第一個字元表示是資料夾還是目錄,如果第 1 個字元是 d,則表示是資料夾。後面 9 個字元可以分為三組,第一組 rwx 表示所有者(user)對檔案的訪問許可權,r 表示可讀(read),w 表示可寫(write),x 表示可被執行,- 表示沒有該許可權;第二組 rwx 表示組群(group)對檔案的訪問許可權;第三組 --x 表示其他人(other)對檔案的訪問許可權,可以看到,沒有 r 和 w,說明 data 對其他人來說是不可讀不可寫的。。

adb shell 是開啟 adb 外殼程式。
su 是獲取 root 許可權,只有 root 許可權才能修改檔案的訪問許可權。
底下一堆 chmod 777 是把對應的檔案或資料夾的訪問許可權的後 9 位設定成 rwxrwxrwx,777 就三個二進位制 111, 合起來就是 111111111(9 個 1),即相當於把後 9 位訪問許可權都置 1,於是就成了 rwxrwxrwx,即所有使用者都具有該檔案的全部訪問許可權(媽媽再也不用擔心我打不開 data 了…)。

問題三是關於adb root,以後碰到再研究。

以及他的關於使用 Android Device Monitor的總結:

1.Android Device Monitor 要在模擬器執行之前就開啟,這樣才不會出現模擬器裝置 offline 的問題。
2.Android Device Monitor 和 Instant Run 貌似有衝突,在用 Android Device Monitor 時關閉 Instant Run 功能。我相信還有更好的解決方法,不然開啟一個大一點的 APP,不能同時用這兩個功能,那多影響效率啊。只是我目前還處於學習階段,上述方案能解決我當前的問題,不影響我進一步學習,那它就是 OK 的。

3.操作 Android Device Monitor 時,應該預設把你當做其他人(other)對待,所以你對檔案的訪問許可權很受限制。解決方法是在命令列中,通過在 adb shell 裡獲取 root 許可權,並更改相應檔案的訪問許可權,當然記得將 adb 所在目錄新增進環境變數。

4.能訪問了但是不能下載也是很麻煩的事,通過在命令列執行 adb root 獲取檔案的下載許可權。

5.通過上述操作之後,就能正常使用 Android Device Monitor 進行檔案管理了。但不幸的是,當你重啟模擬器,或啟動另一臺模擬器時,這些配置又得重新來過,否則你還是無法訪問和下載模擬器中的檔案。這個問題的根源在於許可權二字,問題不是不能獲取許可權(通過 adb shell 可以獲取 root 許可權),而在於獲取許可權太麻煩了,希望後續版本的 Android Studio 可以直接在 Android Device Monitor 的 GUI 中設定相應獲取許可權的命令,使得廣大 Android 開發者對模擬器中的檔案操作更有效率。