兩年前就有想法,讓客戶用自己的手機直接測試我們的設備。但是當時需求性不大,手上事情多也就先放着了。休假回來後,發現情況已經變了,客戶都走安卓平臺了,憤轉平臺而戰。目前雖未能用自己的手機測試(平臺權限問題)成功,但是過程值得一敘。
安卓平臺調試設備的主要流程:
1,環境安裝
2,驅動開發
3,驅動編譯
4,測試工具開發
5,測試工具編譯與測試工具模擬運行
6,安卓設備配置
7,設備調試
步驟詳情
1,環境安裝
準備JDK安卓包(360軟件中有),Android Studio 安裝包(360軟件中有), adb調試工具包。
1)安裝JDK並配置到環境變量,不會配置的請看https://blog.csdn.net/huahua520amy/article/details/19708417
2)安裝Android Studio,並在安裝成功後右下角工具欄下載安裝NDK(需配置ndk-build文件路徑到環境變量)、安卓平臺、AVD。也可在安裝好後Tools->SDK Manager/AVD Manager中安裝。
3)adb調試工具包路徑配置到環境變量。
2,驅動開發
設備驅動基於windows平臺已開發好,且已支持安卓平臺。
3,驅動編譯
配置好Application.mk和Android.mk文件後用cmd指令“ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk”編譯驅動。
Application.mk:
APP_BUILD_SCRIPT := Android.mk
APP_ABI := armeabi-v7a
APP_STL := c++_static
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := #cpp文件列表
LOCAL_MODULE := #目標名稱
LOCAL_MODULE_TAGS := eng
LOCAL_C_INCLUDES := #依賴文件頭列表
LOCAL_LDLIBS := #依賴庫列表
LOCAL_LDFLAGS := -llog -lz
LOCAL_CFLAGS := -w -O2 -g -W -Wall -DLOG_DEBUG -DANDROID -fPIC -std=c++11
include $(BUILD_SHARED_LIBRARY)
4,測試工具開發
在Android Studio中新建文件,編輯xml文件設計界面,編輯java文件設置功能。xml文件可以可視化編輯,但需要處理控件位置問題(魔術棒)。
5,測試工具編譯與測試工具模擬運行
在Android Studio中用小錘子(make project)後點綠三角(run)本機模擬運行。
6,安卓設備配置
- 開發機有線連接安卓設備,打開設備開發者-USB調試功能。安卓設備無線網絡連接到開發機同一網段。
- 進入開發機cmd,輸入指令“dba devices“”查看連接按安卓設備。若android studio中有run過,需要先關閉android studio並重啓,否則3057端口會被佔用報錯。
- 輸入指令 “dba install app.apk”(最後字段是apk文件全名)安裝apk到安卓設備。此處需要在安卓設備上確認安裝,否則會報-200錯誤。
- 輸入指令“adb shell”進入安卓設備指令模式,輸入指令“ifconfig”查詢安卓設備ip地址,輸入指令“exit”退出安卓設備指令模式。
- 輸入指令“arp - a” 查詢測試機網段內設備IP信息,結合安卓設備ip地址查詢信息得到安卓設備ip地址。
- 輸入指令“adb tcpip 55555”打開安卓設備tipcp調試口。
- 輸入指令“adb connect 102.168.43.1”(最後字段是安卓設備ip)網絡連接到安卓設備。
7,設備調試(HID設備)
- 安卓設備打開OTG功能並通過OTG線連接調試設備。
- 開發機中輸入指令“adb shell”進入安卓設備指令模式。
- 開發機中輸入指令“cat /proc/bus/input/devices"查看安卓機連接設備信息,找到調試設備信息確認連接正常。
- 開發機中輸入指令“cd /dev/bus/usb/”進入安卓設備的連接設備目錄,用ls指令查看所有子目錄設備。
- 安卓設備斷開測試設備有線連接。
- 開發機中用ls指令查看安卓設備連接的設備信息,對比上次查詢情況,排除掉安卓機的固有設備。
- 安卓設備有線連接測試設備。
- 開發機中用ls指令查看安卓設備連接的設備信息,對比上次查詢情況,確定調試設備“文件名”。
- 開發機中用ls - l指令查看調試設備權限信息,若當前權限不可讀寫,則需要用“chmod -R 777 /dev/bus/usb/”指令配置設備權限。
- 進入apk調試。