Android模擬器下怎麼建一個SD卡及其上傳資料和檔案夾的建立全解
最近在做一個應用要在android模擬器上建一個SD卡,放進去一些檔案。就自己的心得寫一些:
有兩個方法,這個大家在百度上一搜就有好多,幾乎是一個版本:
用cmd命令建SD卡,這個方法比較直觀容易理解:
1.建立鏡像檔案
用cmd中進入到android的SDK的Tools目錄下,執行mksdcard建立。
例如我的tools目錄為:E:\skyland\android-sdk-windows-1.0_r2\tools>
則:E:\skyland\android-sdk-windows-1.0_r2\tools>mksdcard 128M sdcard.img
其中第一個參數為要建立的sdcard容量大小(容量大小自己決定),第二個參數為sdcard的名字
2.啟動帶sdcard的Android模擬器
在剛才的Dos介面下,E:\skyland\android-sdk-windows-1.0_r2\tools>emulator -sdcard sdcard.img
這樣會看到tools目錄下就會動態產生一個sdcard.img.lock的檔案夾,當關閉模擬器時又會消失
注意:不要關閉這個Dos視窗,不然連模擬器也會關掉,後面一步也不能執行
3.添加檔案到sdcard
另外開一個Dos視窗(cmd),還是要cd到android的SDK的Tools目錄下,用adb push命令添加
E:\skyland\android-sdk-windows-1.0_r2\tools>adb push new.JPG /sdcard
第一個參數為要加入的圖片(mp3)全名,如果名字中間有空格,要用雙引號將其括起來
如:E:\skyland\android-sdk-windows-1.0_r2\tools>adb push "First Start.mp3" /sdcard
第二參數就是剛才建立的sdcard了。
4.查看所添加的檔案
這一步可能要以帶sdcard的方式重啟Android模擬器才能看到剛才所添加的資源檔,即先關掉模擬器,
然後E:\skyland\android-sdk-windows-1.0_r2\tools>emulator -sdcard sdcard.img
啟動模擬器之後,點擊MENU上面那箭頭-->Dev Tools-->Raw Image Viewer 就會以投影片的形式
看到剛添加的
圖片檔案了,然後通過按下面左右控製圖片瀏覽
有人說可以在MENU上面那箭頭-->Dev Tools-->Media Scanner看到所添加的mp3檔案,但我試來不
行, 哪位行的話給我留言....呵呵
我的方法是:MENU上面那箭頭-->Music-->Songs就看到所添加的mp3檔案了,點一首Enjoy一下吧
本來第一首是英文名的,但不知道為什麼會亂碼,還有我加入的檔案名稱跟顯示歌名不同的
===========MyEclipse下使用sdcard==============
如果沒建立.img檔案的話,請回到開頭做1,2步。
注意:如果沒按第2步啟動模擬器,卻做下面的內容的話,就會報錯說 sdcard是唯讀檔案,
添加不成功
1.啟動MuEclipse,菜單Window-->Perspective-->other-->DDMS
選中sdcard,然後點擊push就可以把圖片的資源添加到sdcard了
2.用到sdcard資源編譯Android應該程式
如果編譯Android應該程式的時候需要用到sdcard的資源,則在選則運行檔案後
右擊Run As-->Open Run Dialog-->Target
在Target標籤的Aditional Emulator Command Line Options中加入啟動參數
-sdcard E:\skyland\android-sdk-windows-1.0_r2\tools\sdcard
注意:是絕對路徑
如果沒按第二步啟動模擬器的話,permissions那列對應的sdcard將會是“---------”
++++++++++++++++++++++++++++++++++++++++++
Andorid開發中經常遇到與SD卡有關的調試,Android SDK+Eclipse提供了SD卡的類比方法。使用方法如下:
1、建立一個SD卡鏡像檔案。
開啟cmd,輸入如下命令:
mksdcard 1024M sdcard.img
該命令會在目前的目錄下產生一個sdcard.img檔案,該檔案就是Android模擬器的SD卡鏡像檔案。
1024M表示1024兆,即該SD卡有1個G的容量,也可用K做單位(1M=1024K),K,M必須大寫。
目前Android支援8M~128G的SD卡。
2、運行帶有SD卡的模擬器
建立了SD卡鏡像檔案,只是建立了一個檔案,還不能在模擬器中直接用,要在模擬器中可看到該SD卡,方法有兩種,如下:
◆在cmd中,命令如下:
emulator -sdcard e:sdcard.img
◆在Eclipse中,在Run->Run Configurations...菜單裡面的Target標籤頁裡面,輸入啟動參數,如:
3、向SD卡中導檔案
◆在cmd中,命令如下:
這會將本地目前的目錄下的test.txt檔案考到sdcard中,檔案名稱不變。前一個test.txt是本地檔案的路徑,sdcard是目的sdcard鏡像的檔案名稱(去掉尾碼)。
◆在Eclipse中,操作如下:
在設定了RUN的命令參數之後,RUN一個應用,然後使用DDMS的File Explorer工具匯入匯出檔案。
開啟DDMS工具:在Eclipse的Window->Open Perspective->Other...裡面開啟DDMS工具。
在DDMS的File Explorer標籤頁裡面選擇sdcard目錄匯入匯出檔案,如:
4、在模擬器中使用SD卡中的檔案
匯入檔案後,如果要在模擬器中訪問,還需要在模擬器中的Dev tools裡面scan一下媒體檔案
****************************************
上面主要說了怎麼建立和匯入檔案,可是在鏡像的SD卡裡怎麼建立一個檔案夾和刪除已經上傳的檔案需要用到adb命令,下面是一些比較全的adb命令:
android adb shell常用命令
最進學到了adb工具的一些小技巧,記錄在此。作業系統是windows用。
1. 顯示系統中全部Android平台:
android list targets
2. 顯示系統中全部AVD(模擬器):
android list avd
3. 建立AVD(模擬器):
android create avd --name 名稱 --target 平台編號
4. 啟動模擬器:
emulator -avd 名稱 -sdcard ~/名稱.img (-skin 1280x800)
5. 刪除AVD(模擬器):
android delete avd --name 名稱
6. 建立SDCard:
mksdcard 1024M ~/名稱.img
7. AVD(模擬器)所在位置:
Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd)
8. 啟動DDMS:
ddms
9. 顯示當前啟動並執行全部模擬器:
adb devices
10. 對某一模擬器執行命令:
abd -s 模擬器編號 命令
11. 安裝應用程式:
adb install -r 應用程式.apk
12. 擷取模擬器中的檔案:
adb pull <remote> <local>
13. 向模擬器中寫檔案:
adb push <local> <remote>
14. 進入模擬器的shell模式:
adb shell
15. 啟動SDK,文檔,執行個體下載管理員:
android
16. 缷載apk包:
adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包
17. 查看adb命令協助資訊:
adb help
18. 在命令列中查看LOG資訊:
adb logcat -s 標籤名
19. adb shell後面跟的命令主要來自:
源碼\system\core\toolbox目錄和源碼\frameworks\base\cmds目錄。
20. 刪除系統應用:
adb remount (重新掛載系統磁碟分割,使系統磁碟分割重新可寫)。
adb shell
cd system/app
rm *.apk
21. 擷取管理員權限:
adb root
22. 啟動Activity:
adb shell am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴充資料,等)。
23、發布連接埠:
你可以設定任意的連接埠號碼,做為主機向模擬器或裝置的請求連接埠。如:
adb forward tcp:5555 tcp:8000
24、複製檔案:
你可向一個裝置或從一個裝置中複製檔案,
複製一個檔案或目錄到裝置或模擬器上:
adb push <source> <destination></destination></source>
如:adb push test.txt /tmp/test.txt
從裝置或模擬器上複製一個檔案或目錄:
adb pull <source> <destination></destination></source>
如:adb pull /addroid/lib/libwebcore.so .
25、搜尋模擬器/裝置的執行個體:
取得當前啟動並執行模擬器/裝置的執行個體的列表及每個執行個體的狀態:
adb devices
26、查看bug報告:
adb bugreport
27、記錄無線通訊日誌:
一般來說,無線通訊的日誌非常多,在運行時沒必要去記錄,但我們還是可以通過命令,設定記錄:
adb shell
logcat -b radio
28、擷取裝置的ID和序號:
adb get-product
adb get-serialno
29、訪問資料庫SQLite3
adb shell
sqlite3
#cd system/sd/data //進入系統內指定檔案夾
#ls //列表顯示當前檔案夾內容
#rm -r xxx //刪除名字為xxx的檔案夾及其裡面的所有檔案
#rm xxx //刪除檔案xxx
#rmdir xxx //刪除xxx的檔案夾
# 非阻塞logcat
使用-d參數,可以在讀完所有log後返回,而不會一直等待,在自動化較有用。例如:
adb logcat -d -s xxx > xxx.log //得到filter為xxx的日誌,存入xxx.log,然後返回。
# 用grep過濾log
windows也不要緊,grep有windows版本。其實,裝了cygwin後,它就帶了grep。
adb logcat | grep xxx //過濾出帶xxx字樣的log
# 在本地執行adb shell中的命令
我們常需要adb shell後,在裝置上執行一些命令。其實可以不進入shell,直接執行裝置上命令並輸出到本地。例如:
adb shell "am start -n com.aaa.bbb/com.aaa.bbb.activity" //啟動某程式
# 用top查看cpu使用率
可以在adb shell中,用top來查看cpu和記憶體等使用方式,-m參數可以只顯示前幾條,-n參數可以只重新整理幾次,然後返回,不再阻塞,在自動化時有用。例如:
adb shell "top -n 1" | grep com.aaa.bbb //不進入shell,直接在本地執行top,只執行一次,並過濾出com.aaa.bbb的那一行。通過輸出,可以得到這個程式的cpu使用率,也可以判斷此程式是否已退出。
# 用adb devices查看是否有已串連的裝置
adb devices可以列出所有已串連的裝置,並有online/offline的標誌,根據分析輸出可以得到是否有裝置,有哪些裝置。
# 批量上傳/下載檔案到裝置
adb push和adb pull一次只能傳一個檔案,用for命令可以做到批量處理:
adb shell "mkdir /sdcard/yuv" //在裝置上建立/sdcard/yuv目錄
for %i in (*.yuv) do adb push %i /sdcard/yuv/ //將目前的目錄下所有副檔名為yuv的檔案,上傳到/sdcard/yuv/目錄下
Android模擬器下怎麼建一個SD卡及其上傳資料和檔案夾的建立全解
最近在做一個應用要在android模擬器上建一個SD卡,放進去一些檔案。就自己的心得寫一些:
有兩個方法,這個大家在百度上一搜就有好多,幾乎是一個版本:
用cmd命令建SD卡,這個方法比較直觀容易理解:
1.建立鏡像檔案
用cmd中進入到android的SDK的Tools目錄下,執行mksdcard建立。
例如我的tools目錄為:E:\skyland\android-sdk-windows-1.0_r2\tools>
則:E:\skyland\android-sdk-windows-1.0_r2\tools>mksdcard 128M sdcard.img
其中第一個參數為要建立的sdcard容量大小(容量大小自己決定),第二個參數為sdcard的名字
2.啟動帶sdcard的Android模擬器
在剛才的Dos介面下,E:\skyland\android-sdk-windows-1.0_r2\tools>emulator -sdcard sdcard.img
這樣會看到tools目錄下就會動態產生一個sdcard.img.lock的檔案夾,當關閉模擬器時又會消失
注意:不要關閉這個Dos視窗,不然連模擬器也會關掉,後面一步也不能執行
3.添加檔案到sdcard
另外開一個Dos視窗(cmd),還是要cd到android的SDK的Tools目錄下,用adb push命令添加
E:\skyland\android-sdk-windows-1.0_r2\tools>adb push new.JPG /sdcard
第一個參數為要加入的圖片(mp3)全名,如果名字中間有空格,要用雙引號將其括起來
如:E:\skyland\android-sdk-windows-1.0_r2\tools>adb push "First Start.mp3" /sdcard
第二參數就是剛才建立的sdcard了。
4.查看所添加的檔案
這一步可能要以帶sdcard的方式重啟Android模擬器才能看到剛才所添加的資源檔,即先關掉模擬器,
然後E:\skyland\android-sdk-windows-1.0_r2\tools>emulator -sdcard sdcard.img
啟動模擬器之後,點擊MENU上面那箭頭-->Dev Tools-->Raw Image Viewer 就會以投影片的形式
看到剛添加的
圖片檔案了,然後通過按下面左右控製圖片瀏覽
有人說可以在MENU上面那箭頭-->Dev Tools-->Media Scanner看到所添加的mp3檔案,但我試來不
行, 哪位行的話給我留言....呵呵
我的方法是:MENU上面那箭頭-->Music-->Songs就看到所添加的mp3檔案了,點一首Enjoy一下吧
本來第一首是英文名的,但不知道為什麼會亂碼,還有我加入的檔案名稱跟顯示歌名不同的
===========MyEclipse下使用sdcard==============
如果沒建立.img檔案的話,請回到開頭做1,2步。
注意:如果沒按第2步啟動模擬器,卻做下面的內容的話,就會報錯說 sdcard是唯讀檔案,
添加不成功
1.啟動MuEclipse,菜單Window-->Perspective-->other-->DDMS
選中sdcard,然後點擊push就可以把圖片的資源添加到sdcard了
2.用到sdcard資源編譯Android應該程式
如果編譯Android應該程式的時候需要用到sdcard的資源,則在選則運行檔案後
右擊Run As-->Open Run Dialog-->Target
在Target標籤的Aditional Emulator Command Line Options中加入啟動參數
-sdcard E:\skyland\android-sdk-windows-1.0_r2\tools\sdcard
注意:是絕對路徑
如果沒按第二步啟動模擬器的話,permissions那列對應的sdcard將會是“---------”
++++++++++++++++++++++++++++++++++++++++++
Andorid開發中經常遇到與SD卡有關的調試,Android SDK+Eclipse提供了SD卡的類比方法。使用方法如下:
1、建立一個SD卡鏡像檔案。
開啟cmd,輸入如下命令:
mksdcard 1024M sdcard.img
該命令會在目前的目錄下產生一個sdcard.img檔案,該檔案就是Android模擬器的SD卡鏡像檔案。
1024M表示1024兆,即該SD卡有1個G的容量,也可用K做單位(1M=1024K),K,M必須大寫。
目前Android支援8M~128G的SD卡。
2、運行帶有SD卡的模擬器
建立了SD卡鏡像檔案,只是建立了一個檔案,還不能在模擬器中直接用,要在模擬器中可看到該SD卡,方法有兩種,如下:
◆在cmd中,命令如下:
emulator -sdcard e:sdcard.img
◆在Eclipse中,在Run->Run Configurations...菜單裡面的Target標籤頁裡面,輸入啟動參數,如:
3、向SD卡中導檔案
◆在cmd中,命令如下:
這會將本地目前的目錄下的test.txt檔案考到sdcard中,檔案名稱不變。前一個test.txt是本地檔案的路徑,sdcard是目的sdcard鏡像的檔案名稱(去掉尾碼)。
◆在Eclipse中,操作如下:
在設定了RUN的命令參數之後,RUN一個應用,然後使用DDMS的File Explorer工具匯入匯出檔案。
開啟DDMS工具:在Eclipse的Window->Open Perspective->Other...裡面開啟DDMS工具。
在DDMS的File Explorer標籤頁裡面選擇sdcard目錄匯入匯出檔案,如:
4、在模擬器中使用SD卡中的檔案
匯入檔案後,如果要在模擬器中訪問,還需要在模擬器中的Dev tools裡面scan一下媒體檔案
****************************************
上面主要說了怎麼建立和匯入檔案,可是在鏡像的SD卡裡怎麼建立一個檔案夾和刪除已經上傳的檔案需要用到adb命令,下面是一些比較全的adb命令:
android adb shell常用命令
最進學到了adb工具的一些小技巧,記錄在此。作業系統是windows用。
1. 顯示系統中全部Android平台:
android list targets
2. 顯示系統中全部AVD(模擬器):
android list avd
3. 建立AVD(模擬器):
android create avd --name 名稱 --target 平台編號
4. 啟動模擬器:
emulator -avd 名稱 -sdcard ~/名稱.img (-skin 1280x800)
5. 刪除AVD(模擬器):
android delete avd --name 名稱
6. 建立SDCard:
mksdcard 1024M ~/名稱.img
7. AVD(模擬器)所在位置:
Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd)
8. 啟動DDMS:
ddms
9. 顯示當前啟動並執行全部模擬器:
adb devices
10. 對某一模擬器執行命令:
abd -s 模擬器編號 命令
11. 安裝應用程式:
adb install -r 應用程式.apk
12. 擷取模擬器中的檔案:
adb pull <remote> <local>
13. 向模擬器中寫檔案:
adb push <local> <remote>
14. 進入模擬器的shell模式:
adb shell
15. 啟動SDK,文檔,執行個體下載管理員:
android
16. 缷載apk包:
adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包
17. 查看adb命令協助資訊:
adb help
18. 在命令列中查看LOG資訊:
adb logcat -s 標籤名
19. adb shell後面跟的命令主要來自:
源碼\system\core\toolbox目錄和源碼\frameworks\base\cmds目錄。
20. 刪除系統應用:
adb remount (重新掛載系統磁碟分割,使系統磁碟分割重新可寫)。
adb shell
cd system/app
rm *.apk
21. 擷取管理員權限:
adb root
22. 啟動Activity:
adb shell am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴充資料,等)。
23、發布連接埠:
你可以設定任意的連接埠號碼,做為主機向模擬器或裝置的請求連接埠。如:
adb forward tcp:5555 tcp:8000
24、複製檔案:
你可向一個裝置或從一個裝置中複製檔案,
複製一個檔案或目錄到裝置或模擬器上:
adb push <source> <destination></destination></source>
如:adb push test.txt /tmp/test.txt
從裝置或模擬器上複製一個檔案或目錄:
adb pull <source> <destination></destination></source>
如:adb pull /addroid/lib/libwebcore.so .
25、搜尋模擬器/裝置的執行個體:
取得當前啟動並執行模擬器/裝置的執行個體的列表及每個執行個體的狀態:
adb devices
26、查看bug報告:
adb bugreport
27、記錄無線通訊日誌:
一般來說,無線通訊的日誌非常多,在運行時沒必要去記錄,但我們還是可以通過命令,設定記錄:
adb shell
logcat -b radio
28、擷取裝置的ID和序號:
adb get-product
adb get-serialno
29、訪問資料庫SQLite3
adb shell
sqlite3
#cd system/sd/data //進入系統內指定檔案夾
#ls //列表顯示當前檔案夾內容
#rm -r xxx //刪除名字為xxx的檔案夾及其裡面的所有檔案
#rm xxx //刪除檔案xxx
#rmdir xxx //刪除xxx的檔案夾
# 非阻塞logcat
使用-d參數,可以在讀完所有log後返回,而不會一直等待,在自動化較有用。例如:
adb logcat -d -s xxx > xxx.log //得到filter為xxx的日誌,存入xxx.log,然後返回。
# 用grep過濾log
windows也不要緊,grep有windows版本。其實,裝了cygwin後,它就帶了grep。
adb logcat | grep xxx //過濾出帶xxx字樣的log
# 在本地執行adb shell中的命令
我們常需要adb shell後,在裝置上執行一些命令。其實可以不進入shell,直接執行裝置上命令並輸出到本地。例如:
adb shell "am start -n com.aaa.bbb/com.aaa.bbb.activity" //啟動某程式
# 用top查看cpu使用率
可以在adb shell中,用top來查看cpu和記憶體等使用方式,-m參數可以只顯示前幾條,-n參數可以只重新整理幾次,然後返回,不再阻塞,在自動化時有用。例如:
adb shell "top -n 1" | grep com.aaa.bbb //不進入shell,直接在本地執行top,只執行一次,並過濾出com.aaa.bbb的那一行。通過輸出,可以得到這個程式的cpu使用率,也可以判斷此程式是否已退出。
# 用adb devices查看是否有已串連的裝置
adb devices可以列出所有已串連的裝置,並有online/offline的標誌,根據分析輸出可以得到是否有裝置,有哪些裝置。
# 批量上傳/下載檔案到裝置
adb push和adb pull一次只能傳一個檔案,用for命令可以做到批量處理:
adb shell "mkdir /sdcard/yuv" //在裝置上建立/sdcard/yuv目錄
for %i in (*.yuv) do adb push %i /sdcard/yuv/ //將目前的目錄下所有副檔名為yuv的檔案,上傳到/sdcard/yuv/目錄下