2018年12月21日 星期五

撰寫Android APP在各版本及不同品牌手機上之注意事項


數位典藏與學習電子報 第十一卷第六期 
Daodin社會網路服務系統計畫 /羅曉筑
出版日期:民國 101 年 06 月 15 日

本次計畫活動Daodin 數典框的 Android APP 在撰寫程式時遇上了許多麻煩,由於是第一次與外包廠商合作撰寫,多少一些地方都沒注意上,在此把所遇上的問題點整理出來,如下:
1. Daodin APP 最後的步驟要上傳圖片到網路上,但行動裝置的網路連線有可能會因為使用者在移動中或者有其他因素之干擾等,手機的行動網路穩定度不定,因此在資料傳輸前須做網路連線的偵測(見圖1),以避免因傳輸失敗的當機,尤其本手機程式;當然在第一步驟登入帳號時候也得做好一次網路連線偵測(見圖2),免得使用者忘記開啟網路連線,造成程式當機或者登入不成功卻還不知道是因為忘記開啟網路連線,而還在努力嘗試登入程式。(如何做?)

圖1. Daodin APP數典框上傳分享照片網路連線判斷流程圖


圖2. Daodin APP數典框登入帳號、帳號註冊網路判連線判斷流程圖
2. 在APP編輯邊框和套用邊框部分,我們經常發生程式進行到一半程式強制關閉,或者直接跳出程式等情況,經過反覆測試發現,由於Android系統中每個APP記憶體限制為16MB,在做影像處理等需要大記憶體陣列的應用需要注意,否則程式很容易進行一半的時候發生記憶體不足之現象而導致程式強制關閉或者直接跳出程式。如果影像過大的情況,可以講影像切成許多小區塊個別處理,減少單次運算所佔用的記憶體空間,以避免記憶體不足所造成的錯誤。
3. 相較於 iOS,Android 系統的製造廠商多,螢幕尺寸種類也較多,解析度和比例也大不相同,例如:HTC、Sony、Samsung……等。iOS 採用 xib 的方式和絕對座標定義每個元件,而 Android 的 XML 定義螢幕元件的擺放,Java 則定義元件的 Controller。不一定 HTC 上可執行的手機程式,在同樣 HTC 出廠卻螢幕尺寸及解析度不同,或者相同尺寸卻是別家廠牌出廠的手機,容易會有錯誤出現或者是畫面跑版等情況,下圖3,(a) Sony Ericsson XPERIA Ray 3.3吋手機螢幕畫面、(b) HTC Hero 機3.2吋手機螢幕畫面、(c) HTC Wildfire 野火機 3.2吋手機螢幕畫面、(d) HTC Desire HD 機4.3吋手機螢幕畫面所呈現出之畫面。可由此看出不同手機螢幕尺寸、解析度之下畫面呈現之差異。在本 APP 的畫面製作過程中,就成因為螢幕尺寸及解析度的不同,所做出來的畫面呈現出不同樣貌,或者甚至是在 A 手機上可以呈現出所有按鈕,可是在 B 手機上,按鈕卻消失。因此 APP 畫面 Layout 使用選定使用上,是該注意到的地方。
                
(a) Sony Ericsson XPERIA Ray 3.3吋手機螢幕畫面(b) HTC Hero 機3.2吋手機螢幕畫面
                             
(c) HTC Wildfire 野火機 3.2吋手機螢幕畫面 (d) HTC Desire HD 機4.3吋手機螢幕畫面
圖3. (a)、(b) 、(c) 、(d) Daodin APP 於不同手機螢幕尺寸、解析度之下畫面呈現之差異
4. Android 版本相容度不同,程式功能與手機相容度之間必須取一個平衡點,所開發出來的 APP 程式才可以在 Android 舊新版本中向下或向上相容。再者由於 Android 系統的製造廠商多,也並非每家所做的內容都相同,光是相簿就有不同之處,還有一些核心管理的部分也不盡相同, Android 系統最好都依著 Android 的規格下去做撰寫,比較不容易出錯。

》相關新聞閱讀:
NTNU President Chang appointed by the National Science Council to serve as TELDAP deputy program director from August 1

》刊載處:
http://newsletter.teldap.tw/news/NewsContent.php?nid=5744&lid=659

沒有留言:

張貼留言