主頁 > 移動端開發 > 老師給的硬核移動端測驗面試題目,大家看看靠譜嗎

老師給的硬核移動端測驗面試題目,大家看看靠譜嗎

2021-04-06 11:43:18 移動端開發

以后我把各崗位的題目更新個遍,當然大部分都是我自己總結的保證質量哈

ADB作業原理

  • 當用戶啟動一個adb客戶端,客戶端首先確認是否已有一個adb服務行程在運行,如果沒有,則啟動服務行程,當服務器運行, adb服務器就會系結本地的TCP埠5037并監聽adb客戶端發來的命令,所有的adb客戶端都是用埠 5037與adb服務器進行對話的,
  • 接著服務器將所有運行中的模擬器或設備實體建立連接,它通過掃描所有5555到5585范圍內的奇數埠來定位所有的模擬器或設備,一旦服務器找到了adb守護程式,它將建立一個到該埠的連接,請注意任何設備和模擬器實體會取得兩個連接的埠,一個偶數埠用來控制與控制臺的連接,和一個奇數埠用來控制與adb連接,

ADB 的使用

    • 顯示當前運行的虛擬設備:adb devices
    • 查看adb所支持的所有命令:adb –help
    • 查看adb的版本序列號:adb version
    • 進入模擬器的shell模式:adb shell

  1. 如何重啟 adb服務

關閉server:adb kill-server

重啟server:adb start-server

  1. APP的安裝與卸載

在模擬器安裝軟體:adb install –r *.apk

在模擬器卸載軟體:adb uninstall 包名

adb install –r *.apk

    • 只連接一個設備
    • adb  install  安裝包路徑
    • 連接多個設備,需要指定一個設備
    • adb –s 設備序列號 install 安裝包路徑
    • 覆寫安裝,保留資料
    • adb –s 設備序列號 install -r 安裝包路徑

例:adb -s 192.168.56.101:5555 install - r E:/test.apk

  1. 如何在電腦與手機之間傳輸資料?
    1. 向模擬器中傳輸檔案:adb push

例如:adb push D:\demo\meituan.apk /data/local/meituan.apk

    1. 從模擬器中獲取檔案:adb pull

例如: adb pull /data/local/meituan.apk D:\

  1. 如何靜默安裝APP

adb push D:\demo\meituan.apk /data/local/meituan.apk

adb shell pm install –f /data/local/meituan.apk

  1. 如何使用adb啟動停止一個app?

adb shell am start –W –S package/activity

adb shell am force-stop package

  1. 如何獲取CPU、記憶體狀態

adb shell dumpsys meminfo packagename

adb shell dumpsys cpuinfo |findstr packagename

App開發方式有三種

Native App 、Web App、Hybird App

monkey

  1. monkeyt進行壓力測驗的命令?

adb shell monkey –p < packagename > <count>

  1. 如何重現Crash/ANR程序?

添加引數 –s seed

3、請對下列monkey命令進行解釋(需要解釋各引數的含義),

adb shell monkey -p com.example.think.helloworld --pct-touch 20 --pct-motion 30 --throttle 300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000 > D:/monkey2.log

參考答案

  1. -p com.example.think.helloworld 1000對這個包com.example.think.helloworld進行穩定性測驗,發送1000次隨機事件
  2. --pct-touch 20 其中設定觸屏的事件占比為20%
  3. --pct-motion 30滑動事件占30%
  4. --throttle 300每次間隔事件為300毫秒
  5. --ignore-crashes Monkey會執行完所有的事件,不會因crash而停止
  6. --ignore-timeouts 忽略超時
  7. --ignore-security-exceptions忽略安全例外
  8. --ignore-native-crashes忽略本地例外
  9. --monitor-native-crashes監視系統中本地代碼發生的崩潰
  10. -v -v -v 日志詳細等級,3個v代表最詳細等級的日志
  11. D:/monkey2.log D:/monkey2.log:代表將產生的日志,放到本地PC的D盤,并命名為:monkey2.log

客戶端性能測驗需要關注哪些方面?

CPU,記憶體,流量、電量以及客戶端在不同網路環境下回應速度等等,

如何使用Fiddler抓取HTTPS包

Fiddler https相關設定

在瀏覽器中安裝證書

APP兼容性測驗需要考慮哪些因素?

  • 系統版本(android&ios平臺,不同版本)
  • 解析度(小屏、大屏、全屏)
  • 手機品牌(華為、小米OPPO、VIVO等)

WAP 頁面兼容性測驗有哪些因素?

  • 不同平臺的不同瀏覽器(safari、chrome等)
  • 解析度(小屏、大屏、全屏)
  • 轉發到QQ、微信、微博等第三方平臺

除錯App相關的bug常用哪些工具?

  • 網路相關工具,fiddle、wareshark、charles
  • adb、am、logcat等
  • 云平臺,bug復現

除錯Web頁面常用哪些工具?

  • Chrome除錯工具,可設定移動APP UA
  • WEINRE (WEb INspector REmote)

服務器端壓力測驗工具有哪些?

LoadRunner

JMeter

自主研發的工具

服務器端壓力測驗需要監控哪些指標?

CPU

記憶體(虛擬內容、實際記憶體)

QPS、平均回應時間

簡述開展服務器端壓力測驗的步驟

  1. 搭建服務端模塊,啟動服務
  2. 實施大量并發的測驗場景
  3. 監控行程相關指標、記憶體、CPU
  4. 監控模塊的執行情況,QPS、平均回應時間
  5. 收集資料并進行分析,生成曲線圖
  6. 根據分析結果,得出測驗結論

簡述什么是持續性集成

  • 持續集成是指開發階段,對專案進行持續性
  • 自動化編譯、測驗,以達到控制代碼質量的手段
  • 持續集成是一種軟體開發實踐

持續集成都包含哪些內容?

  • 開發人員、版本控制
  • CI服務器、構建腳本
  • 反饋機制、集成構建

持續集成的意義有哪些?

  • 減少風險、減少重復程序
  • 任何時間、任何地點生成可部署的軟體
  • 增加專案可見性、建立團隊對產品的信心

android的四大組件是什么?并對android的四大組件的功能進行描述,

1)Activity,Service,BroadcastReceiver,ContentProvider

2)Activity是會顯示視圖控制組件的用戶介面,并對事件作出回應, Activity是Android應用程式的最基本的組件,Android應用程式中一個單獨的螢屏通常就是一個Activity,

Service是具有一個較長生命周期且沒有用戶界面的程式,只能在后臺運行,可以和其他組件進行互動,

BroadcastReceiver用戶用來接收應用或系統中的廣播,并作出回應,

Content Provider使一個應用程式的指定資料集提供給其他應用程式,其他應用可以通過ContentResolver類從該內容提供者中獲取或存入資料,

騰訊的GT是什么工具?

參考答案

GT(隨身調)是APP的隨身調測平臺,它是直接運行在手機上的“集成調測環境”(,利用GT,僅憑一部手機,無需連接電腦,您即可對APP進行快速的性能測驗(CPU、記憶體、流量、電量、幀率/流暢度等等),

請列舉出互動性測驗的測驗要點

  • 客戶端作為手機特性測驗,包含被打擾的情況,來電,來短信,低電量測驗等
  1. 使用應用時對來電的處理
  2. 使用應用時對短資訊的處理
  3. 使用應用時鬧鈴響起
  4. 使用應用時鎖屏、解鎖
  5. 待機、插拔資料線、耳機不會影響客戶端

請列舉出Android的功能測驗點

答出任意五點

  1. 安裝\卸載(本機+第三方)
    App具體功能點
  2. 聯網(默認的聯網方式是什么?Wifi or Sim卡?網路切換是否有相應的提示說明?)
  3. 程式進入輸入功能時,是否正常彈出鍵盤;鍵盤是否遮擋了應用需要輸入內容的對話框
  4. app切換測驗(最小化、多個app切換, home和程式間多次切換 )
  5. 關機、待機后app能否正常使用
    回傳上一級操作,退出程式后的提示
  6. 當離開測驗應用一段時間后,在回到測驗應用時不能丟失用戶資料
    衡屏豎屏切換時不能丟失用戶資料
  7. 長按某一按鈕是否會觸發其他事件
  8. 注意PC端和APP的資料同步(比如某作者在PC端設定了禁止他人評論,那么在APP上也應該禁止)
  9. 如果在APP中內嵌了些超鏈接后,程式如何處理,如果呼叫設備的瀏覽器,能否正常切回到APP
  10. 各個頁面間多次切換
  11. 權限的限制(拍照、語音、藍牙)
  12. 互動分享:如果程式里面包括分享功能,那么檢測點擊分享的時候是否會正常給出分享提示,點擊分享后所填寫的分享內容是否正確
  13. 長時間開機且開app,看是否會出現例外情況

Android應用程式結構是什么?

參考答案:Linux Kernel(Linux內核)Libraries(系統運行庫或者是c/c++核心庫)Application Framework(開發框架包)Applications(核心應用程式)

請對Appium進行簡要的介紹,

Appium是一個開源、跨平臺的測驗框架,可以用來測驗原生,移動Web及混合的移動端應用,支持ios,android平臺的測驗,

Appium使用WebDriver的json wire協議,來驅動Apple系統的UIAutomation庫, Android 系統的UIAutomator框架,

PO框架設計思路,需要包含哪些包,實作哪些功能,

base里面有個BaseTest.java,這個類的主要作用是啟動和關閉APP的作用

pages存放頁面元素類,每一個java類,都是一個頁面,存放的都是對應頁面的所有元素及操作

testcases存放測驗用例的地方,在這個包下,還會有很多子包,子包的個數根據測驗的系統的模塊來劃分,比如有登錄模塊,首頁模塊等,那么子包的名字就應該寫成login、home

utils封裝了各種工具類,包括讀取excel,appium api封裝類,讀取資料庫類,讀取屬性檔案類和生成driver的類等,

Android Service兩種啟動方式的區別

1、采用start的方式開啟服務

特點:如果服務已經開啟,不會重復的執行onCreate(), 而是會呼叫onStartCommand(),服務停止的時候呼叫 onDestory(),服務只會被停止一次,一旦服務開啟跟呼叫者(開啟者)就沒有任何關系了,開啟者退出了,開啟者掛了,服務還在后臺長期的運行,
開啟者不能呼叫服務里面的方法,

2、采用bind的方式開啟服務

bind的方式開啟服務,系結服務,呼叫者掛了,服務也會跟著掛掉,系結者可以呼叫服務里面的方法,

請敘述Appium的四大設計理念

  • 不需要為了自動化,而且重新編譯或修改測驗app
  • 不必局限于某種語言或者框架來撰寫和運行測驗腳本的運行
  • 一個移動自動化的框架不應該在介面上重復造輪子
  • 移動端自動化測驗應該是開源的

Appium架構原理

(1)Appium服務器,Appium服務器是Appium框架的核心,它是一個基于Node.js實作的HTTP服務器,Appium服務器的主要功能是接受從Appium客戶端發起的連接,監聽從客戶端發送來的命令,將命令發送給bootstrap.jar(iOS手機為bootstrap.js)執行,并將命令的執行結果通過HTTP應答反饋給Appium客戶端,

(2)Bootstrap.jar,Bootstrap.jar是在Android手機上運行的一個應用程式,它在手機上扮演TCP服務器的角色,當Appium服務器需要運行命令時,Appium服務器會與Bootstrap.jar建立TCP通信,并把命令發送給Bootstrap.jar;Bootstrap.jar負責運行測驗命令,

(3)Appium客戶端,它主要是指實作了Appium功能的WebDriver協議的客戶端Library,它負責與Appium服務器建立連接,并將測驗腳本的指令發送到Appium服務器,現有的客戶端Library有多種語言的實作,包括Ruby、Python、Java、JavaScript(Node.js)、Object C、PHP和C#,Appium的測驗是在這些Library的基礎上進行開發的,

啟動/關閉Service的代碼實作

public void start(View v){

Intent intent =new Intent(this,MyService.class);

startService(intent);

}

public void stop(View v){

Intent intent =new Intent(this,MyService.class);

stopService(intent);

}

請列舉出互動性測驗的測驗要點,

客戶端作為手機特性測驗,包含被打擾的情況,來電,來短信,低電量測驗等

    1. 使用應用時對來電的處理
    2. 使用應用時對短資訊的處理
    3. 使用應用時鬧鈴響起
    4. 使用應用時鎖屏、解鎖
    5. 待機、插拔資料線、耳機不會影響客戶端

安裝、卸載測驗主要針對編譯后源程式生成的APK安裝檔案

1)驗證app能否正確安裝運行卸載,以及操作程序和操作前后對系統資源的占有情況

2)安裝運行卸載的提示,報告等

3)檢查安裝路徑,檔案是否合理,組件是否正確注冊等

  • 驗證數字簽名
  • 升級后可以正常使用
  • 在線跨版本升級

例外測驗

  • 在斷網、斷電、服務器例外等情況下,客戶端能否正常處理,保證資料的正確性,
    • 使用應用時斷網
    • 斷網時啟動應用
    • 使用應用時斷電
    • 服務器例外,客戶端能否正常處理
    • Client端更新時斷開了
    • Client端更新時Service端掛了

業務邏輯測驗點需要考慮哪些因素?

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/272917.html

標籤:其他

上一篇:Android常用的幾個控制元件(Android學習第二課)

下一篇:[開源]基于姿態估計的運動計數APP開發(三)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more