測試前奏 之 模擬器環境之Genymotion、Emulator、夜神配置選擇

  週末是一個學習與總結的好時機。利用工作之餘、閒暇之中做些喜歡的事情,一時間會感到很滿足、很充實。筆者做安卓移動開發的,爲了提高在所開發應用app的性能,得到一款流暢、討人喜愛的應用,之前在開發路線上也做了很多的功課。曉得怎麼快速定位自己親手開發的應用哪裏存在bug問題,哪裏存在性能問題,通過什麼方式能夠更好的優化處理,是很重要的。那麼學習一下測試我覺得會是一個很好的技術方案與方向。
  測試中,設備的測試是免不了的操作。起初使用真機,而權限問題卻是硬傷。無奈之下忍屈憋痛找了模擬器使用下下,但在配置環境使用Genymotion時問題出現了,坑多多吖 ~
爲了讓更多學習中的夥伴能夠快速定位並解決問題,並做一個靜靜的美男子。在此把自己的配置經驗分享一下;
    所需文件下載鏈接
     密碼:qghq
這裏寫圖片描述

  簡單解釋一下圖的內容,並根據下圖目的進行配置。
這裏寫圖片描述

apache-ant adt-bundle-windows VirtualBox genymotion .ova 結尾文件
開發環境配置其一 集成了adt、sdk和eclipse的開發包 虛擬機 手機模擬器設備 雙擊裝入VirtualBox的虛擬手機設備

配置自動化測試環境

闡明下我的正確配置組合

操作系統 genymotion版本 VirtualBox版本
win10-64位 2.6.0 5.2.18

  接下來,先走一遍我錯誤配置的過程,然後詳盡描述又是如何糾正和走回正道的。

錯誤的配置組合

操作系統 genymotion版本 VirtualBox版本
win10-64位 2.6.0 4.3.x

這裏寫圖片描述

配置的整個流程

  1. 配置jdk
  2. 配置ant環境(系統變量中配置)
    這裏寫圖片描述
    這裏寫圖片描述
  3. 配置adbandriod命令環境(同樣是在系統變量中進行配置)
    adb的命令在路徑在**/sdk/platform-tools ('adb’不是內部或外部命令,也不是可運行的程序或批處理文件)
    andriod的命令在路徑在**/sdk/tools ( ‘android’ 不是內部或外部命令,也不是可運行的程序或批處理文件。)
  4. 安裝VirtualBox
  5. 安裝Genymotion

  我這裏的VirtualBox版本使用的是v4.3.4,一個會導致錯誤的版本,詳情請繼續翻看
這裏寫圖片描述
  上圖就是出現的問題,而且對於一個初學者而言更是一個很難以解決的問題。但在這個問題上少許花費點時間還是可以解決的。
解決流程:

  1. 設置 VirtualBox 和 Genymotion 兼容性、使用管理員身份運行,如下。其中兩者的兼容性設置要一致。
    這裏寫圖片描述
      當然這個設置在我的電腦上還是不能完全解決讓我做正常操作的問題。儘管我有些不服氣多次嘗試了幾個版本,如4.3.10版本,還是不能!好像4.3.x版本本身在我的電腦上是存在問題的。
  2. 於是卸載4.3.x的版本,並重新安裝此時最新的5.2.18版本(這個版本是我實在無奈到官網重新下載
    在最新版本之後就沒有問題了,Genymotion可以正常打開。但還是無法滿足我的需求,在操作過程問題依然存在。
    下面的則是5.2.18版本+Genymotion+兼容性配置+管理員運行配置 正常啓動後的樣子
    這裏寫圖片描述
    裏面的手機虛擬設備是通過上圖中的**.ova文件雙擊加入到VirtualBox虛擬機**中的。
  3. 新的問題出現就是下圖中的——委屈,我先在模擬器設備中打開了調試
    這裏寫圖片描述
    然後自我感覺良好的在dos命令窗口中秀一下,結果
    這裏寫圖片描述
    **又出錯!!!**尷尬,又有意料之外的問題出現,怎麼辦?解決它!經過各種方式,得出結論
    這裏寫圖片描述
adb server version (32) doesn't match this client (39); killing...
error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: 通常每個套接字地址(協議/網絡地址/端口)只允許使用一次。 (10048)

這個問題主要是出現在Genymotion身上,當Genymotion啓動之後,原始配置上是使用自己默認的。導致了各種的不匹配,但是使用上圖中開發包adt-bundle-windows中的sdk也是不行,會出現同樣的問題。
4.於是再次進行嘗試,使用我Andrdoid Studio 中SDK,並把sdk地址添加了進去。最後再次操作執行,發現成功了,像下面。最後的總結是,VirtualBox版本SDK的配置影響好深遠。
這裏寫圖片描述

Genymotion模擬器安裝apk失敗

  緊接着我已經迫不及待的要使用adb命令對手機模擬器設備進行apk的安裝測試了。然後輸入adb安裝apk命令,結果~~又炸了。。
Failure [INSTALL_FAILED_NO_MATCHING_ABIS]
這裏寫圖片描述
  Genymotion從版本2.0開始提供的虛擬設備移除了Google Apps,以及ARM library support支持,依靠這些組件運行的app都會報這個錯誤。而解決方案就是下載讓Genymotion支持app安裝運行的ARM架構的工具包,並裝到Genymotion模擬器中。

  網絡上有說,下載完了之後直接拖到模擬器中就能提示並配置安裝了。我拖我拽了半天,電腦碰巧也是不能夠使用這種方式。於是我只能使用命令安裝了,生活真美好(life is shit)。步驟,

  1. 下載相應的工具包
  2. 啓開Genymotion虛擬機設備
  3. 打開dos字符窗口,將本地Genymotion-ARM-Translation.zip工具包拷貝到模擬器的 /sdcard/Download/目錄
  4. 然後再進行安裝執行
    本地拷貝:adb -s 模擬器名 push 工具包名 /sdcard/Download/工具包的新名字
    安裝執行:adb shell flash-archive.sh /sdcard/Download/工具包的新名字
    這裏寫圖片描述
    這裏寫圖片描述

看到 Done successfully ! 說明工具包安裝成功了。然後我就直接執行安裝apk的命令,
這裏寫圖片描述
發現還是不能安裝apk軟件到虛擬機中。爲什麼??因爲需要重新啓動虛擬機才行!
4. 重新啓動虛擬即,並執行adb的安裝命令,終發現,成功了。
這裏寫圖片描述

最後的問題 Genymotion 點開安裝的app,崩潰

你以爲,這樣就完美成功了嗎?你錯了,因爲當你安裝apk到模擬器中之後,點擊運行會發現——瞬間崩潰!而這個問題,我目前試過N中方式,暫時無解。。。。。
這裏寫圖片描述

然後我決定放棄使用Genymotion,使用Android Studio的模擬器。喵喵鍾成功展示
這裏寫圖片描述

你以爲這樣就算成功了嗎?非也,使用我自己Android Studio中自帶的安卓模擬器安裝上apk,依然出現和使用Genymotion模擬器出現的所有狀況一樣,app起開崩潰!!突然覺得這世界太複雜了,我就想做一個測試用的手機模擬器而已,犯得着跟我這麼較勁兒嗎?!

跳出慣用方案,改換模擬器——夜神手機模擬器

     簡單截圖,以作分享
在這裏插入圖片描述
  設置方便、流暢、快捷,既能滿足測試功能,又能滿足你對美的追求。關鍵的一點是不用考慮什麼 x86、arm架構兼容問題。着實方便,開心到雀躍!下載地址
  下載安裝之後,要進行手機可調式的模式設置,
1)手機模式設置,請看設置圖例;
在這裏插入圖片描述

2)打開USB調試,設置成爲手機的可調式模式;
在這裏插入圖片描述
之後,就能進入到開發者功能選項中進行設置。打開USB調試模式即可!
但是這樣使用adb命令adb devices
在這裏插入圖片描述
找不到?!經查詢解決方案,找到解決方法。使用夜神手機模擬器的話要使用他自己的adb命令 ——nox_adb命令
但是使用之前,你要配置你的path的系統環境。把你安裝的目錄中nox_adb的路徑配置進去。
在這裏插入圖片描述
如此一來你才能進行正常的nox_adb命令。
而事實並非這樣,本以爲已經萬事俱備的時候,突然又出了幺蛾子
在這裏插入圖片描述
又再次走向追尋問題解決方法、良藥的坦途!
使用命令 nox_adb connect 127.0.0.1:62001 開啓連接電腦IP+新的端口。然後就能真正的正常使用了!!!
在這裏插入圖片描述
然後再安裝一下抖音了、慕課網了的apk,安裝成功、運行成功且流暢!到此,幾天的折騰圓滿結束~

未完,繼續

今天是9月30號,距離開這篇博客已近月。中間輾轉回旋,阻礙連連。今天在使用過程中又出現了新的問題——使用Eclipse進行Robotium測試時候,Eclipse無法連接夜神模擬器!!
按照正常的操作邏輯,當我們打開了Eclipse和夜神模擬器(已打開USB調試)。執行測試操作可以看到這樣
在這裏插入圖片描述

而結果Eclipse偏偏不能連接已經調試好的夜神模擬器。
無法正常連接原因一,可能夜神模擬器和SDK中的adb版本不同導致的;可以通過下圖中命令查看
在這裏插入圖片描述
如果兩者的adb版本不同,複製sdk中的adb,覆蓋夜神的adb。
無法正常連接原因二,未進行手動adb連接夜神模擬器,連接方式看下圖
在這裏插入圖片描述
連接成功之後執行Eclipse操作(或者重啓Eclipse)就能看到識別的夜神模擬器了啦~
然後,我自己寫了一個簡單的安卓應用作爲被測工程,又寫了一個測試工程。使用夜神模擬器進行測試,完美通過!!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章