日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android系统镜像编译、烧录及调试

發布時間:2024/3/13 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android系统镜像编译、烧录及调试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

編譯

Android編譯工具鏈:Jack+ninja

問題:Jack沒法多用戶同時編譯,

Google(?Communication error with Jack server?):https://code.google.com/p/android/issues/detail?id=194027

編譯失敗信息:

No Jack server running. Try 'jack-admin start-server'
ninja: build stopped: subcommand failed.
18:24:23 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1

#### make failed to build some targets (02:01:51 (hh:mm:ss)) ####

只要有一個人已經編譯過Android的code了,其他人就沒法編譯了,因為編譯完了jack的端口也是不會釋放的。

如果編譯失敗 可以通過?jack-admin list-server?看當前是否有人已占用了server的jack端口

這個時候可以要求占有者 通過?jack-admin kill-server來釋放這個端口。

解決辦法:

jack 默認的 service port是8076,admin port是8077

1. 修改vi?~/.jack-settings?文件中兩個端口號

SERVER_PORT_SERVICE=8076
SERVER_PORT_ADMIN=8077

2. 修改?vi ~/.jack-server/config.properties?文件中兩個端口號(這個文件在編譯一次后會自己生成,如果沒有這個文件,先編譯一次源碼,報錯后再修改)(端口號改成的數值不能和其他人一樣,否則會有問題)

jack.server.service.port=xxxx

jack.server.admin.port=xxxx

1和2修改的端口號要統一

修改后通過jack-admin list-server,就可以看到同時有多個jack server了。

首先確認編譯的java版本,設置環境變量(source build/envsetup.sh),lunch對應的版本(user版本不支持root權限,開發者一般使用user-debug版本),make otapackage -jx(x表示使用多少線程資源編譯)

燒錄

用兩個接頭以及一條四根的排線制作一個串口板連接線. 連線時要保證引腳一一對應, 即開發板上的GND連接到串口板的GND, 開發板TX連接到串口板TX, 開發板RX連接到串口板RX, 開發板VCC連接到串口板VCC.
注 : 部分板子焊接/布線等可能存在差異, 必要時可嘗試交換TX/RX看是否可以正常使用串口.

開發板重新燒寫系統鏡像:

安裝CP2102串口驅動,

1、“reboot”命令系統重啟,使用 “Enter or CTRL+C”中斷在U-boot階段。
2、使用“store scrub 0”擦除Flash(這個指令會擦除nand原廠標識,謹慎使用)或者在U-boot下輸入"update"命令,此時在設備管理器中會出現一個名為libusb-win32 Usb Devices的設備組

3、使用燒寫線連接開發板與PC,使用USB燒寫工具進行鏡像燒錄,燒錄完成后重啟即可。

筆者使用“store scrub 0”擦除Flash后進行第三步出現過USB燒錄工具檢測不到開發板的問題,并且開發板上電一直是亮紅燈,表示當前已經是空板狀態。(挺嚇人的,意為還要使用JTAG工具重新燒錄初始化鏡像文件),后面電腦重啟,再連接USB燒錄線,打開USB燒錄工具,結果檢測到連接成功,直接燒錄系統鏡像即可。

調試

使用外接顯示器進行系統調試時,即便有遙控器并連接鼠標,仍不便進行編輯框輸入,可以使用adb shell指令“input”輔助調試。

input
Usage: input [<source>] <command> [<arg>...]

The sources are:
? ? ? keyboard
? ? ? mouse
? ? ? joystick
? ? ? touchnavigation
? ? ? touchpad
? ? ? trackball
? ? ? dpad
? ? ? stylus
? ? ? gamepad
? ? ? touchscreen

The commands and default sources are:
? ? ? text <string> (Default: touchscreen)
? ? ? keyevent [--longpress] <key code number or name> ... (Default: keyboard)
? ? ? tap <x> <y> (Default: touchscreen)
? ? ? swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
? ? ? press (Default: trackball)
? ? ? roll <dx> <dy> (Default: trackball)


?填充編輯框命令示例:input text This is a Test?String.

回到主頁面可以使用指令“input keyevent 3”
幾個最常用的KEYCODE如下:
3 --> ?"KEYCODE_HOME"主頁鍵
4 --> ?"KEYCODE_BACK" 返回鍵
19 --> ?"KEYCODE_DPAD_UP" 導航鍵-上
20 --> ?"KEYCODE_DPAD_DOWN"?導航鍵-下
21 --> ?"KEYCODE_DPAD_LEFT"?導航鍵-左
22 --> ?"KEYCODE_DPAD_RIGHT"導航鍵-右
62 --> ?"KEYCODE_SPACE" 空格鍵
66 --> ?"KEYCODE_ENTER" Enter鍵,確認
67 --> ?"KEYCODE_DEL" 回退鍵,刪除
82 --> ?"KEYCODE_MENU"菜單鍵

更多KEYCODE按鍵作用可參照https://blog.csdn.net/feizhixuan46789/article/details/16801429

通過input tap命令模擬觸摸屏幕:input?tap?600?800??在屏幕X坐標600,Y坐標800觸發點擊事件。

input swipe模擬滑動事件,input?swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen),需要將起始的坐標傳入。

input?swipe?600?800?300?800(向左滑動)input?swipe?300?800?600?800 (向右滑動)

adb shell命令“am”也可以做許多操作:

撥打電話:am start -a android.intent.action.CALL -d tel:10086

打開網站:am start -a android.intent.action.VIEW -d http://www.baidu.com

播放音視頻:am start -a android.intent.action.VIEW -d ? "file:///sdcard/Movies/歐若拉-張韶涵.mp4" -t "video/*"?

關機指令:poweroff

抓取后臺應用運行日志信息:logcat -c;logcat

總結

以上是生活随笔為你收集整理的Android系统镜像编译、烧录及调试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。