<pre id="ff7yo"></pre>

      <form id="ff7yo"><legend id="ff7yo"></legend></form>
        <nav id="ff7yo"><listing id="ff7yo"></listing></nav><nav id="ff7yo"></nav>

        <nav id="ff7yo"><listing id="ff7yo"></listing></nav>
        <small id="ff7yo"></small><nav id="ff7yo"><dd id="ff7yo"></dd></nav>
      1. <nav id="ff7yo"></nav>
          <form id="ff7yo"></form><nav id="ff7yo"></nav>
          <nav id="ff7yo"></nav>
          <sub id="ff7yo"></sub>
          更多課程 選擇中心

          軟件測試培訓
          達內IT學院

          400-111-8989

          Android測試和ios測試的區別

          • 發布:軟件測試培訓
          • 來源:老張測試666
          • 時間:2019-10-23 14:14

          軟件測試的面試中經常會提問到一個點,就是做手機測試繞不去的點,那就是Android和ios的區別。本文只做一些比較重要的點講一下,太深入部分就不講了,畢竟我做的是測試,而Android開發和ios開發又是一個很深入的專業,我就不班門弄斧了。

          首先從開發語言上講,Android因為是采用分層思想,最上面是應用層,往下一級是java API框架層,再往底層就是原生的c/c++層,再往下就是硬件驅動以及linux內核層。一般情況下,Android開發都是在最上面2層開發應用。我們一般介紹時會說Android語言跟java語言同源就是這么由來的。而且Android本身開源,所以全世界的各種手機都可以使用Android系統。而ios本身是一個類Unix操作系統,不開源。使用的開發語言是Objective-C,一般也叫OC.只在apple公司的手機、平板等設備上使用。

          如下為Android架構圖:

          Android測試和ios測試的區別

          再說點物理上的區別,而且在測試時很容易被忽略的點,Android手機的3個虛擬按鈕,返回、回到首頁、菜單鍵。最早的時候,Android手機都是物理按鍵,隨著大家對于屏幕占比的重視,導致虛擬鍵的功能越來越流行,物理按鈕被干掉。而虛擬按鈕的出現,也給開發工作加了很多戲,問題就是很多Android應用里面如果不處理這些虛擬按鈕,就很容易導致屏幕出現黑邊,誤碰到虛擬按鈕,導致app退出,或者會跟app的一些按鈕位置重合,導致不能點擊到對應的功能按鈕,以及想調出虛擬按鈕時,又不出來,特別讓用戶煩惱。而ios開發的同學目前來說就沒有這樣的煩惱,早期的iPhone手機只有一個物理的小圓點按鈕,可以雙擊,也可以單擊,而返回效果在很早的時候,就通過左滑就解決了。

          而Android手機跟ios手機還有些不一樣的地方,那就是各種不同分辨率的適配,早期的ios手機屏幕就是固定的幾個尺寸,適配很容易,現在也是有了多個版本的手機,導致機型也變得適配略微麻煩了。而Android手機在全面屏概念出來以后,就徹底放開了,各種手機屏幕的分辨率,也導致了測試在測試時,只能優先一部分用戶的機型體驗,而剩下的用戶機型只能忽略。當然我們可以通過接入一些第三方的平臺,比如友盟,來獲得我們線上用戶的真實使用手機的占比,然后找到top10或者top5,然后買來對應的機型后再做兼容性測試。

          而分辨率相比較而已,還不是最惡心的,我感覺比較惡心的就是各種異形屏,比如劉海,或者水滴等,這樣的手機app進行適配時,我感覺沒有意義的,然而蘋果開頭了,大家都開始學上了。因為異形的那個地方,你不知道放啥,在整個app的所有頁面,你都需要考慮到這個地方怎么特殊處理。要不就是黑邊給你看。

          還有就是手機的操作系統版本,這個問題,之前我覺得影響不是很大,但是測的越久,你就發現,不同的手機操作系統版本,效果還不一樣,比如最常見的就是華為手機經常會出現一些莫名其妙的bug。當然其實我們知道為啥,因為華為本身會對手機的操作系統做一些比較深入的優化,而其他手機廠商,可能只是給換個馬甲的事,就像是王者榮耀的英雄跟皮膚一樣的關系。所以我們做兼容性測試時,可以重點關注一下華為手機機型。而ios之前遇到過讓所有的app從http轉為https,而我們當時的手機app的免費https證書到期,在ios的一些沒有升級到必須使用https的操作系統版本手機上,使用沒有任何問題,而使用ios的高版本,就直接app會閃退。

          所以我們一般考慮手機的操作版本兼容性,Android這邊是從4.4到9,而ios是從10-13.主要還是看你們公司的產品受眾主要用哪些機型。

          另外一點就是安全性,眾所周知的情況是,Android的個人信息泄露比較嚴重,很多app在安裝時會要求很多權限,或者即使不給,他也有各自手段偷偷的獲取這些手段。而ios一般情況下權限管理的很嚴格,沒有意義的權限,一般情況下不會給。而且蘋果官方的審核機制也是比較嚴格,經常會出現審核不通過的情況。所以ios的權限一般情況下,感覺會要的很少。

          Android采用的虛擬機機制,而ios采用的是沙盒機制。沙盒機制的特點是:每個應用只能訪問自己應用的數據和文件,不能隨意去訪問其他的沙盒內容。而虛擬機機制的特點是:每個應用程序都在獨立的虛擬機中,這些獨立的虛擬機實例都是一個獨立的進程空間。而Android這樣做的好處就是跟linux內存管理很相似,是真正的多進程管理,雖然可用內存最后看著少,但是實際上很多程序已經分配了一定的內存了,如果需要,在喚起時,不會再次分配一次,而且已經有了緩存,啟動和響應會比較快。

          Android的內存管理方式和ios不一樣。Android在手機app切換到后臺時,內存空間會保留給這個app,當下次再切換到前臺時,app會快速的響應。而ios是app被切換到后臺后,很短的時間內就會被清理內存,殺死進程。這樣做的好處也是為了給當前切換到前臺的應用騰出空間來。這樣做的好處就是省電,因為只有前臺一個應用在跑。當然還有一些特殊的應用可以一直在后臺運行,比如:音樂、gps等。Android的出發點是為了讓app切換時應用響應速度快,但是造成的后果就是內存可能會被歷史應用占用的內存過多,而繼續創建新的應用時不夠用,才會回收內存。導致想用的app打開時變慢。

          另外一點就是響應優先級不同,ios是對于屏幕反應的優先級最高,也就是UI指令最高。而Android是數據優先級最高。這2者的對比,可以用一個簡單的例子來對比,ios在打開一個app時,它對屏幕的響應優先級是最高的,之后才運行app代碼。Android系統打開app的順序是先運行app的代碼,之后再顯示在用戶的手機屏幕上。直觀來看,對用戶來說,就是我在ios上點了一下,接著就有反應了,而Android慢了半拍。

          再一點,兩者的安裝應用方式不一樣,Android通過各種應用商店,比如豌豆莢,91助手等等,ios只能通過應用商店,而測試版本的軟件,Android可以通過把apk包導入到手機sdcard中,直接安裝或者通過adb install命令安裝包,ios可以通過iTunes方式安裝或者愛思助手之類的軟件進行安裝ipa。當然現在比較流行的是通過第三方來管理測試包,比如說:蒲公英,這個平臺可以把你的測試包上傳后,然后開發者可以把需要下載測試包的同學手機UUID加到白名單后,就可以使用ios的測試包了。當然這個平臺也可以上傳Android軟件測試包。

          另外一點,就是Android因為自身代碼的開源性,很多的app開發者如果不注意保護自己的代碼,很容易被破解后,被其他人打包為別人的,所以Android的app一般都需要做代碼的混淆。也就是把正常的代碼,混淆完之后,就不容易理解了,比如很常見的方式就是代碼的類名改為:a、b、c等等沒有意義的名字。而ios因為本身不開源的特點,就不需要做代碼混淆。

          最后再講一點,消息推送機制不一樣。Android的消息推送底層一般就是2種實現方式,一種是push,一種就是pull。push的意思就是服務器需要給app推送消息了,就直接發送給app,app是被動的。另外一種就是pull,pull的意思就是app定期去服務器那邊輪詢是否有消息推送。這樣來說的話,pull的方式比較費app的性能,所以一般情況下都是通過push。push的方式國內目前一般情況下都是通過第三方平臺。比如:友盟、極光推送等。因為自己做推送的話,會因為開發成本、服務器成本等不合適。而ios的消息推送則是使用蘋果官方的一個APNS的服務器來轉發我們的消息推送。也就是服務器端把推送給app的消息給APNS,由APNS再轉發給我們的app端。Android消息推送時,國內使用的第三方平臺也是扮演的這個中間服務商的一個角色。

          好了,大概的內容,就講這些,當然還有很多的內容,沒有講,但是這些內容基本上已經覆蓋了,我們工作中需要關注的點。

          免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

          預約申請免費試聽課

          填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

          上一篇:Web測試和APP測試的區別
          下一篇:如何選擇軟件測試培訓機構

          參加軟件測試培訓靠譜不?

          軟件測試培訓都學寫什么?

          軟件測試工程師需要我們掌握什么技術?

          學習軟件測試的優勢是什么

          • 掃碼領取資料

            回復關鍵字:視頻資料

            免費領取 達內課程視頻學習資料

          • 視頻學習QQ群

            添加QQ群:1143617948

            免費領取達內課程視頻學習資料

          Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

          選擇城市和中心
          黑龍江省

          吉林省

          河北省

          陜西省

          湖南省

          貴州省

          云南省

          廣西省

          海南省

          神马影院-战旗影院-首播影院-新视觉影院-在线观看中文字幕dvd播放 百度 好搜 搜狗
          <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>