第一篇:Android調(diào)試常用命令總結(jié)
一 adb常用的幾個命令 ······················································································································· 1 二 Log方法: ······································································································································· 2 三 adb Log過濾: ······························································································································· 2
Android調(diào)試
adb logcat-s AndroidRuntime
[ctrl+c退出當(dāng)前命令] adb remount(改變手機(jī)系統(tǒng)為可寫)adb shell stop(快速關(guān)機(jī))adb shell start(快速開機(jī))adb shell reboot(快速重啟)
一 adb常用的幾個命令
1.查看設(shè)備 adb devices 這個命令是查看當(dāng)前連接的設(shè)備, 連接到計算機(jī)的android設(shè)備或者模擬器將會列出顯示
2.安裝軟件 卸載軟件 adb install
4.登錄設(shè)備shell adb shell adb shell
5.從電腦上發(fā)送文件到設(shè)備
adb push <本地路徑> <遠(yuǎn)程路徑> 用push命令可以把本機(jī)電腦上的文件或者文件夾復(fù)制到設(shè)備(手機(jī))
6.從設(shè)備上下載文件到電腦
adb pull <遠(yuǎn)程路徑> <本地路徑> 用pull命令可以把設(shè)備(手機(jī))上的文件或者文件夾復(fù)制到本機(jī)電腦
7.取得設(shè)備root權(quán)限 adb remount 二 Log方法:
android.util.Log常用的方法有以下5個:Log.v()Log.d()Log.i()Log.w()以及 Log.e()。根據(jù)首字母對應(yīng)VERBOSE,DEBUG,INFO, WARN,ERROR。
1、Log.v 的調(diào)試顏色為黑色的,任何消息都會輸出,這里的v代表verbose啰嗦的意思,平時使用就是Log.v(“",”");
2、Log.d的輸出顏色是藍(lán)色的,僅輸出debug調(diào)試的意思,但他會輸出上層的信息,過濾起來可以通過DDMS的Logcat標(biāo)簽來選擇.3、Log.i的輸出為綠色,一般提示性的消息information,它不會輸出Log.v和Log.d的信息,但會顯示i、w和e的信息
4、Log.w的意思為橙色,可以看作為warning警告,一般需要我們注意優(yōu)化Android代碼,同時選擇它后還會輸出Log.e的信息。
5、Log.e為紅色,可以想到error錯誤,這里僅顯示紅色的錯誤信息,這些錯誤就需要我們認(rèn)真的分析,查看棧的信息了。
三 adb Log過濾:
1.只顯示需要的輸出,白名單
最方便的當(dāng)然是通過管道使用 grep 過濾了,這樣可以使用 grep 強(qiáng)大的正則表達(dá)式匹配。簡單的匹配一行當(dāng)中的某個字符串,例如 MyApp: adb logcat | grep MyApp adb logcat | grep-i myapp #忽略大小寫。保存log 使用-d參數(shù),可以在讀完所有l(wèi)og后返回,而不會一直等待,在自動化較有用。例如: adb logcat-d-s xxx > xxx.log //得到filter為xxx的日志,存入xxx.log,然后返回。
第二篇:Android自動化測試工具常用ADB命令總結(jié)
自動化測試常用ADB命令操作總結(jié)
自動化測試基本操作命令:
模擬點(diǎn)擊操作:adb shell input tap 500 500(點(diǎn)擊手機(jī)(500,500)坐標(biāo))模擬滑動屏幕操作:adb shell input swipe 200 500 400 500 模擬輸入文本信息:adb shell input text helloworld 模擬按鍵命令:
adb shell input keyeventKEYCODE_VOLNME_DOWN按音量下鍵 adb shell input keyeventKEYCODE_VOLNME_UP
按音量上鍵 adb shell input keyevent 自動化測試中日志分析截圖命令:
數(shù)據(jù)線連接手機(jī)截圖:adb shell /system/bin/screencap–p /sdcard/screenshot.png 將截圖復(fù)制到電腦盤中:adb pull /sdcard/screenshot.png E:download 輸出所有已經(jīng)安裝應(yīng)用: adb shell pm list package –f 查看預(yù)安APK adb shell pm list package-3 安裝應(yīng)用程序:
adb install –r 應(yīng)用程序.apk 文件傳輸:
獲取模擬器中的文件:adb pull
常用的發(fā)送鍵盤事件:
命令格式:adb shell input keyevent“value” 其中value以及對應(yīng)的key code如下:
KeyEventValueKEYCODE 0 KEYCODE_UNKNOWN 1 KEYCODE_MENU 2 KEYCODE_SOFT_RIGHT 3 KEYCODE_HOME 4 KEYCODE_BACK 5 KEYCODE_CALL 6 KEYCODE_ENDCALL 7 KEYCODE_0 8 KEYCODE_1 9 KEYCODE_2 10 KEYCODE_3 11 KEYCODE_4 12 KEYCODE_5 13 KEYCODE_6 14 KEYCODE_7 15 KEYCODE_8 16 KEYCODE_9 17 KEYCODE_STAR 18 KEYCODE_POUND 19 KEYCODE_DPAD_UP 20 KEYCODE_DPAD_DOWN 21 KEYCODE_DPAD_LEFT 22 KEYCODE_DPAD_RIGHT 23 KEYCODE_DPAD_CENTER 24 KEYCODE_VOLUME_UP 25 KEYCODE_VOLUME_DOWN 26 KEYCODE_POWER 27 KEYCODE_CAMERA 28 KEYCODE_CLEAR 29 KEYCODE_A 30 KEYCODE_B 31 KEYCODE_C 32 KEYCODE_D 33 KEYCODE_E 34 KEYCODE_F 35 KEYCODE_G 36 KEYCODE_H 37 KEYCODE_I 38 KEYCODE_J 39 KEYCODE_K 40 KEYCODE_L 41 KEYCODE_M 42 KEYCODE_N 43 KEYCODE_O 44 KEYCODE_P 45 KEYCODE_Q 46 KEYCODE_R 47 KEYCODE_S 48 KEYCODE_T 49 KEYCODE_U 50 KEYCODE_V 51 KEYCODE_W 52 KEYCODE_X 53 KEYCODE_Y 54 KEYCODE_Z 55 KEYCODE_COMMA 56 KEYCODE_PERIOD 57 KEYCODE_ALT_LEFT 58 KEYCODE_ALT_RIGHT 59 KEYCODE_SHIFT_LEFT 60 KEYCODE_SHIFT_RIGHT 61 KEYCODE_TAB 62 KEYCODE_SPACE 63 KEYCODE_SYM 64 KEYCODE_EXPLORER 65 KEYCODE_ENVELOPE 66 KEYCODE_ENTER 67 KEYCODE_DEL 68 KEYCODE_GRAVE 69 KEYCODE_MINUS 70 KEYCODE_EQUALS 71 KEYCODE_LEFT_BRACKET 72 KEYCODE_RIGHT_BRACKET 73 KEYCODE_BACKSLASH 74 KEYCODE_SEMICOLON 75 KEYCODE_APOSTROPHE 76 KEYCODE_SLASH 77 KEYCODE_AT 78 KEYCODE_NUM 79 KEYCODE_HEADSETHOOK 80 KEYCODE_FOCUS 81 KEYCODE_PLUS 82 KEYCODE_MENU 83 KEYCODE_NOTIFICATION 84 KEYCODE_SEARCH 85 TAG_LAST_KEYCODE
第三篇:PMU調(diào)試命令總結(jié)--殷忠全提供
CSD361命令匯集
下列調(diào)試命令供大家在調(diào)試CSD-361系列PMU時使用,注意命令的輸入順序?!醮砜崭?。
一、站內(nèi)調(diào)試使用 1.修改文件屬性:
cd□/mnt/nor/bin chmod□777□* 2.查看進(jìn)程:
cd□/mnt/nor/bin ps□-A 3.查詢文件:
cd□/mnt/nor/bin ls 停止PMU系統(tǒng)進(jìn)程:
./killdog(殺看門狗命令,正常運(yùn)行時系統(tǒng)進(jìn)程處于保護(hù)狀態(tài),執(zhí)行此命令后,才能完全停止PMU系統(tǒng)進(jìn)程)./ProcGuard□-stop 啟動PMU系統(tǒng)進(jìn)程:./ProcGuard□-start 升級插件后重啟插件: reboot 查詢站內(nèi)所有插件對時情況: cd□/mnt/nor/bin 4.5.6.7../dbgtime 8.查詢CPU和內(nèi)存占用率:
cd□/mnt/nor/bin./top 9.上傳pmu文件和plat文件后,根據(jù)情況需重置文件:
./killdog
./ProcGuard□-stop./pmu□-c
./plat□-c 當(dāng)提示成功生成新文件后,斷電重啟裝置即可。
遇到主機(jī)液晶顯示值與離線文件數(shù)據(jù)不一致時,可用該命令重新生成新配置文件。重新生成轉(zhuǎn)化因子。10.重啟looprd進(jìn)程后查看:
./killdog
./ProcGuard□-stop./looprd□-stop./looprd□-v 該進(jìn)程負(fù)責(zé)PMU實(shí)時數(shù)據(jù)存儲。11.格式化計算插件:
./killdog
./ProcGuard□-stop./fdisk_cpu.sh 裝置告警存儲異常時使用。12.格式化管理插件:
./killdog
./ProcGuard□-stop
./fdisk_master.sh
13.查詢開入/開出插件實(shí)時信息:
cd□/mnt/nor/bin./cantest
也可根據(jù)系統(tǒng)提示,進(jìn)行開入開出傳動測試。14.固化操作系統(tǒng):
user su
sh□add_flash_drv./main
二、與主站調(diào)試時使用 1.查詢通道狀態(tài):
cd□/mnt/nor/bin./killdog
./ProcGuard□-stop./pmu□1□-v 說明:“1”表示監(jiān)視與主站通訊的通道號。在計算插件節(jié)點(diǎn)配置中可查詢到通道號。
2.查詢與主站通訊鏈路狀態(tài):
可登陸計算插件后直接ping主站地址(或本地網(wǎng)關(guān)),也可以登陸到bin目錄下ping主站地址(或本地網(wǎng)關(guān))。3.查詢子站與主站端口是否建立:
cd□/mnt/nor/bin
netstat□-an|grep□(主站地址或者端口號)例:netstat□-an|grep□8000 netstat-an|grep□10.30.16.2
4.截取子站和主站通訊報文功能tcpdump功能。在V1.53版本中,已經(jīng)實(shí)裝,無需再上傳,直接使用即可。登陸到計算插件 cd□/mnt/nor/bin./tcpdump□–i□eth2□host□10.64.3.7□-w□文件名
說明:eth2表示與主站連接的網(wǎng)口。要分析報文時,只需要在bin目錄下導(dǎo)出文件即可,用mms-ethereal 或Wireshark軟件打開分析。停止抓包按Ctrl+C。
以上所有命令供大家了解和掌握。相信還有很多命令沒有碰到過,希望所有調(diào)試過CSD361的兄弟們能進(jìn)一步完善。能為以后調(diào)試時帶來方便。
第四篇:Android總結(jié)
Android四大組件:
Activity—表現(xiàn)屏幕界面
Service—后臺服務(wù)
BroadcastReceiver—實(shí)現(xiàn)廣播機(jī)制
ContentProvider—實(shí)現(xiàn)數(shù)據(jù)存儲
Intent類:用來啟動程序并傳遞信息的類
用于Activity、Receiver、Service之間進(jìn)行交互的類,通過無參構(gòu)造方法創(chuàng)建對象,增加其action、category、data、extra等屬性進(jìn)行信息傳遞,并通過Activity中的startActivity(Intent intent)進(jìn)行界面的跳轉(zhuǎn);通過Context中的StartService(Intent intent)進(jìn)行服務(wù)跳轉(zhuǎn);通過Context中的registerReceive(Intent intent)對廣播進(jìn)行注冊,并通過sendBroadcast()進(jìn)行無序消息發(fā)送,或可以通過SendOrderedBroadcast()進(jìn)行有序的消息發(fā)送。Handler類:
用來發(fā)送和處理消息,并配合主線程完成UI的更新;消息Message/Runnable傳遞通過MessageQueue(消息隊列,先進(jìn)先出)進(jìn)行傳遞,并通過Lopper進(jìn)行接收,傳遞的消息可以為Message對象,也可以是Runnable對象;接收方法通過HandleMessage(Message msg)進(jìn)行獲取。SharedPreferences類:
一般用于第一次登錄時的設(shè)置,或者是各個界面的一些小型格式設(shè)置,如字體等。是本地的小型共享數(shù)據(jù)庫,可以通過Context的靜態(tài)方法getSharedPreferences獲得其對象,對象內(nèi)的值均為鍵值對進(jìn)行儲存。通過SharedPreferences對象調(diào)用editor()獲取SharedPreferences.Editor對象,向共享數(shù)據(jù)庫中增加數(shù)據(jù),putString(),并提交數(shù)據(jù),commit();通過SharedPreferences對象獲取共享數(shù)據(jù)庫中的數(shù)據(jù),getString()。
ViewPager:實(shí)現(xiàn)界面滑動的類;
通過設(shè)置OnPagerChangedListener設(shè)置ViewPager的監(jiān)聽事件;
實(shí)現(xiàn)流程:
①布局文件中設(shè)置ViewPager控件;
②代碼中進(jìn)行綁定控件;
③通過繼承PagerAdapter抽象類進(jìn)行設(shè)置適配器,并傳遞數(shù)據(jù)源;
④適配器中實(shí)現(xiàn)兩個抽象方法,兩個重寫方法:getCount()—獲取滑動界面的數(shù)量,isViewFromObject()—判斷視圖是否是來自于Object文件中;重寫兩個方法,分別為destoryItem—銷毀指定位置的視圖;InstantiateItem(),設(shè)置指定位置的視圖;
Timer與TimerTask類:
Timer為計時器的類,通過無參構(gòu)造方法可以獲取對象,通過Timer.schedule(TimerTask task,long time)進(jìn)行設(shè)置多久后執(zhí)行某任務(wù),當(dāng)任務(wù)執(zhí)行完后,取消計時的功能,Timer.cancle();TimerTask類為抽象類,實(shí)例化時,必須重寫run方法;執(zhí)行的內(nèi)容,均在run方法中進(jìn)行設(shè)置,并且執(zhí)行時,已在子線程中進(jìn)行執(zhí)行。自定義View:用到的類有Paint、Canvas、Spec、SpecF、Path、View.MeasureSpec、Timer、TimerTask;
抽象類,通過子類繼承,獲取對象;在布局文件中綁定后,通過代碼,設(shè)置自定義View的屬性;自定義View中,通過重寫OnMeasure方法,對布局文件中的尺寸進(jìn)行測量,并由View中的setMeasureDimenson()方法,進(jìn)行數(shù)據(jù)的保存;通過重寫Ondraw方法,進(jìn)行繪圖;當(dāng)需要繪制動態(tài)圖形時,使用計時器Timer的schedule(TimerTask,long time,delay time2)方法,在time時間后,每隔time2時間,重寫執(zhí)行run方法中的內(nèi)容;將耗時的操作設(shè)置在run方法中,并通過View中的invalidate()方法刷新主線程中的繪的圖形,通過postInvalidate()刷新子線程中的圖形。數(shù)據(jù)庫:
常用的數(shù)據(jù)庫有Oracle,需要安裝和配置的大型收費(fèi)數(shù)據(jù)庫;MySQL是中型數(shù)據(jù)庫,同樣需要安裝配置,但不需要收費(fèi);Sqlite是小型免費(fèi)的嵌入式數(shù)據(jù)庫,占用內(nèi)存低,最新版本為3.0。Sqlite數(shù)據(jù)庫需要通過SqliteDatabaseOpenHelper進(jìn)行創(chuàng)建數(shù)據(jù)庫,并通過SqliteDatabase進(jìn)行數(shù)據(jù)庫的操作。輔助類是抽象類,通過繼承,重寫兩個方法,并在子類的構(gòu)造方法中通過OpenHelper的構(gòu)造方法(Context context,String SqlName,SqliteDatabase.CursorFactory factory,int version)進(jìn)行數(shù)據(jù)庫的創(chuàng)建,在onCreate方法中,進(jìn)行數(shù)據(jù)庫表的創(chuàng)建,在onUpdate中進(jìn)行數(shù)據(jù)庫的版本更新。在數(shù)據(jù)庫的操作類中,執(zhí)行exect方法,通過sql語句對數(shù)據(jù)庫進(jìn)行操作。Create table student(_id integer primary key auto increament ,name text);insert into student(_id,name)values(1,zx);delete from student where _id=1;update student set _id=2 where name=zx;select *from student;ListView、GridView適配器的優(yōu)化:
將布局文件中的控件進(jìn)行封裝,當(dāng)視圖加載時,判斷可變視圖是否存在,當(dāng)不存在時,通過布局文件獲取視圖,并新建封裝類,將地址通過setTag()進(jìn)行發(fā)送;當(dāng)視圖存在時,重復(fù)利用地址—getTag()。反射:
存儲數(shù)據(jù)的方式:
共享數(shù)據(jù)庫、數(shù)據(jù)庫、文件、網(wǎng)絡(luò)、內(nèi)容提供者
廣播:
廣播傳播時,需要接收者、發(fā)送者、廣播頻道;根據(jù)發(fā)送者的發(fā)送方式不同,分為有序廣播、無序廣播;有序廣播為接收者有接收順序,根據(jù)設(shè)置的優(yōu)先級不同,確定先后順序,接收者同時也是發(fā)送者,向后面的廣播發(fā)送消息,發(fā)送過程中,可以添加信息,也可以停止廣播的傳輸;無序廣播,接收者之間無聯(lián)系,均從發(fā)送者處接收信息;廣播在傳輸過程中,不能被添加信息,也不可能被停止。廣播在發(fā)送前,需要對接收者進(jìn)行注冊,注冊方式有兩種,動態(tài)注冊、靜態(tài)注冊。動態(tài)注冊,是在代碼中進(jìn)行,通過Context對象調(diào)用靜態(tài)方法進(jìn)行注冊,所有的廣播均可以用動態(tài)注冊,其生命周期依賴于應(yīng)用,相對于靜態(tài)注冊,比較節(jié)省內(nèi)存;靜態(tài)方法在清單文件中進(jìn)行注冊,部分系統(tǒng)廣播不能通過靜態(tài)注冊進(jìn)行,其生命周期依賴于系統(tǒng),當(dāng)系統(tǒng)啟動,即運(yùn)行接收廣播,較耗內(nèi)存。廣播接收者需要繼承BroadcastReceiver,并實(shí)現(xiàn)抽象方法onReceive(),通過回調(diào)接口,進(jìn)行數(shù)據(jù)的傳輸。注意:廣播發(fā)送前,必須進(jìn)行接收者的注冊,并且,當(dāng)顯示跳轉(zhuǎn)時,不需要意圖過濾器。安卓布局:九種布局
線性布局,水平或垂直方向兩種格式,主要特點(diǎn)為權(quán)重,即規(guī)定各控件在視圖中的占有的比例;
相對布局,相對于父控件或兄弟控件的布局,各控件需指定相對位置; 絕對布局,指定各控件在視圖中的絕對位置,幾乎不再使用; 表格布局,子布局放在行中,列由控件表示(TableRow); 幀布局:覆蓋前面布局的布局,一般用于暫停按鈕等; 風(fēng)格布局:可以跨行、跨列的布局,占滿換行;
左右側(cè)滑:可以實(shí)現(xiàn)左右側(cè)滑,通過設(shè)置主菜單和二級菜單設(shè)置左右兩個菜單; 下拉刷新:設(shè)置下拉刷新、上拉加載的功能; 抽屜布局;
安卓版本及對應(yīng)的API:
1.6—4;2—7;3—11;4—15;4.3—18;5—20;5.1—21;6—23;7—25; 安卓四層架構(gòu):
應(yīng)用層:Java語言開發(fā),主要從事App開發(fā);
運(yùn)行庫層:Java語言與C語言,View視圖、管理類等的開發(fā); 架構(gòu)層:C語言與Linux語言,各種框架、瀏覽器等; 內(nèi)核層:Linux、C語言,開發(fā)各種驅(qū)動; 安卓四大組件:
Activity:界面,實(shí)現(xiàn)程序與用戶之間的交換,有自己的生命周期,七個生命周期;4種啟動模式 Service:
BroadcastReceive:三要素,發(fā)送者、接收者、發(fā)送頻道(Intent);類型:有序(接收有序,有數(shù)據(jù)傳送,可以攔截數(shù)據(jù))、無序廣播(相對);注冊方式:靜態(tài)注冊,持久監(jiān)聽,占用內(nèi)存比較高生命周期跟隨系統(tǒng),動態(tài)注冊(代碼中),所有廣播都可以動態(tài)注冊,部分系統(tǒng)廣播不能動態(tài)注冊,臨時監(jiān)聽,占用內(nèi)存較少,生命周期隨應(yīng)用進(jìn)行;
ContentProvide:不能存放數(shù)據(jù),五種存放數(shù)據(jù)方式之一,特點(diǎn)為:①為數(shù)據(jù)的獲取等操作添加一個統(tǒng)一的接口②可以實(shí)現(xiàn)跨應(yīng)用訪問數(shù)據(jù);③可以實(shí)現(xiàn)Android中通訊錄、消息、音頻、視頻等的訪問或操作;通過ContentReceive進(jìn)行數(shù)據(jù)的訪問,可以對數(shù)據(jù)進(jìn)行增刪改查操作。
動畫: IO流: 序列化: AlertDialog:
Set實(shí)現(xiàn)類: 手機(jī)電量檢測:
自定義SurfaceView:
自定義View:三個構(gòu)造方法的區(qū)別
Message:Handler.obtain/new/Message.obtain
HttpUriConnection訪問網(wǎng)絡(luò)
gride 異步任務(wù) 動畫
抽象類和接口 反射 克隆 序列化 側(cè)滑的實(shí)現(xiàn) 數(shù)據(jù)庫 Socket:
Gson解析
異步任務(wù)和子線程區(qū)別 WebView 版本更新 照片的圓角化
Collection與Collections Sql語句
MVP框架與MVC: TCP與UDP的區(qū)別: 一鍵分享的流程: Http協(xié)議的理解: 不使用框架訪問網(wǎng)絡(luò): List集合與set集合: 自定義View的流程: 線性布局的特點(diǎn): ViewPager的原理: 服務(wù)的啟動方式:
Activity的啟動方式: Xml數(shù)據(jù)解析:
第五篇:如何打開Android設(shè)備的USB調(diào)試模式
如何打開Android設(shè)備的USB調(diào)試模式
如何打開Android設(shè)備的USB調(diào)試模式
目前大部分刷機(jī)等工具都是采用 Adb 方式連接,所以需要您在設(shè)備上打開USB調(diào)試模式
Android 設(shè)備打開USB調(diào)試模式總共有三種不同方法,根據(jù)系統(tǒng)版本而不同,以下為 Android 所有系統(tǒng)版本對應(yīng)的打開方法
壹2.1 ~ 2.3.7 系統(tǒng)打開方法:
? 點(diǎn)擊手機(jī) Menu鍵(菜單鍵),在彈出的菜單中選擇 設(shè)置(Setting), 或在應(yīng)用程序中找到設(shè)置 程序點(diǎn)擊進(jìn)入
? 進(jìn)入設(shè)置界面的 應(yīng)用程序 即可打開 USB調(diào)試模式
貳4.0 ~ 4.1.2 系統(tǒng)打開方法
? 點(diǎn)擊手機(jī) Menu鍵(菜單鍵),在彈出的菜單中選擇 設(shè)置(Setting), 或在應(yīng)用程序中找到 設(shè)置 程序點(diǎn)擊進(jìn)入
? 進(jìn)入設(shè)置界面的 開發(fā)人員選項 即可打開 USB調(diào)試模式
叁4.2、4.3、4.4 系統(tǒng)打開方法 ? 點(diǎn)擊手機(jī) Menu鍵(菜單鍵),在彈出的菜單中選擇 設(shè)置(Setting), 或在應(yīng)用程序中找到 設(shè)置 程序點(diǎn)擊進(jìn)入
? 點(diǎn)擊 關(guān)于手機(jī)
? 找到內(nèi)部版本號
? 連續(xù)點(diǎn)擊七次 版本號
? 再 返回 設(shè)置菜單界面選擇 開發(fā)者者選項
? 點(diǎn)擊打開右上角的 開關(guān), 即可打開 USB調(diào)試模式,? 打開USB調(diào)試模式后,下拉手機(jī)通知欄,將手機(jī)上連接電腦的USB模式設(shè)置為“僅充電”模式或“媒體設(shè)備(MTP)”或“同步”模式