新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Android平臺的多分辨率解決方案

        基于Android平臺的多分辨率解決方案

        作者: 時間:2012-03-05 來源:網絡 收藏

        摘 要:近年來,智能手機的功能越來越強大,移動終端應用程序層出不窮,移動互聯網改變人們的生活。 系統是開放手機聯盟推出的一款開源的手機操作系統,正是由于其開放性,沒有采用Windows PhONe7 類似的硬件限定標準,目前系統的機型越來越多,一些硬件指標出現了混亂的局面,其中最明顯的就是屏幕的問題。如何使開發者的應用程序盡可能多地適應多種,正是本文要講述的問題。文章首先介紹 的系統架構,然后介紹Android 的相關術語,之后重點講述在開發過程中如何部署資源以及所應遵循的原則,最后給出測試多分辨率兼容性的方法。

        本文引用地址:http://www.104case.com/article/149518.htm

        0 引 言

        2007 年11 月,Google 公司發布Linux2.6 內核的移動終端操作系統- Android, 由于其開源性, 得到很多手機廠商的追捧和應用開發者的青睞。近年來智能手機發展迅速,運行速度、存儲容量和可靠性等指標有了顯著提高[1],當今的智能手機用戶對應用軟件的舒適性和美觀性有了更大的期望,應用程序界面友好性已經越來越重要。但是由于Android 的開源性,硬件廠商屏幕分辨率不統一,據統計目前市場上Android系統手機的分辨率有10 余種,分辨率分布如此廣泛使得開發者在處理多分辨率適應方面遇到了不少難題。文章首先介紹Android 的系統架構及資源管理方法,之后介紹目前開發者在處理多分辨率時采用的方法,而后重點分析Android 資源加載機制并且結合實例給出多分辨率的處理步驟及技巧,最后介紹測試多分辨率效果的方法。

        1 Android 平臺簡介

        Android 是一個包括操作系統、中間件和關鍵應用的移動設備軟件堆[2],Android 系統和其他系統一樣,采用分層的架構。由下至上依此為Linux 操作系統和驅動、程序庫及Android 運行時環境、應用程序框架層、應用層。 Android 應用程序的基本組件有Activity、Intent、BroadcaSTReceiver、Service 四種,各個組件的配置信息以及權限管理、版本管理等配置信息都保存在AndroidManifest.xml 中。

        1.1 Android 應用程序資源管理

        手機界面上加載的圖片是Android 資源的一種,除此之外還有XML 資源(anim.xml layout.xml 等) 以及原數據文件( 音視頻文件等)[3].新建一個HelloAndroid 的Android 應用程序,默認生成的文件架構包含src,gen,assets,res 等文件夾,以及AndroidManifest.xml 配置文件。src 文件夾中保存的是Android 源代碼,res 文件夾代表應用程序需要使用到的資源文件,gen 包中包含R.java 文件。Res 文件夾中包含的所有資源文件都對應在R.java 中。

        當開發者在res/ 目錄中任何一個子目錄中添加相應類型的文件之后,ADT 會在R.java 文件中相應的匿名內部類中國自動生成一條靜態int 類型的常量,對添加的文件進行索引。

        Android 系統采取這種架構使視圖等資源文件與控制代碼分離,實現松耦合。然而可以使用R.java 文件在代碼中對相應的資源文件進行存取,靈活操作。

        1.2 一般多分辨率處理方法及其缺點

        1.2.1 圖片縮放

        當前屏幕的精度,平臺自動加載任何未經縮放的限定尺寸和精度的圖片。如果圖片不匹配,平臺會加載默認資源并且在放大或者縮小之后可以滿足當前界面的顯示要求。例如,當前為高精度屏幕,平臺會加載高精度資源(如HelloAndroid中drawable-hdpi 中的位圖資源),如果沒有,平臺會將中精度資源縮放至高精度,導致圖片顯示不清晰。

        1.2.2 自動定義像素尺寸和位置

        如果程序不支持多種精度屏幕,平臺會自動定義像素絕對位置和尺寸值等,這樣就能保證元素能和精度160 的屏幕上一樣能顯示出同樣尺寸的效果。例如,要讓WVGA 高精度屏幕和傳統的HVGA 屏幕一樣顯示同樣尺寸的圖片,當程序不支持時,系統會對程序慌稱屏幕分辨率為320×480,在(10,10)到(100,100)的區域內繪制圖形完成之后,系統會將圖形放大到(15,15)到(150,150)的屏幕顯示區域。

        1.2.3 兼容更大尺寸的屏幕

        當前屏幕超過程序所支持屏幕的上限時,定義supportsscreens元素,這樣超出顯示的基準線時,平臺在此顯示黑色的背景圖。例如,WVGA 中精度屏幕上,如程序不支持這樣的大屏幕,系統會謊稱是一個320×480 的,多余的顯示區域會被填充成黑色。

        1.2.4 采用OpenGL 動態繪制圖片

        Android 底層提供了OpenGL 的接口和方法,可以動態繪制圖片,但是這種方式對不熟悉計算機圖形學的開發者來講是一個很大的挑戰。一般開發游戲,采用OpenGL 方式。

        1.2.5 多個apk 文件

        Symbian 和傳統的J2ME 就是采用這種方式,為一款應用提供多個分辨率版本,用戶根據自己的需求下載安裝相應的可執行文件。針對每一種屏幕單獨開發應用程序不失為一種好方法,但是目前Google Market 對一個應用程序多個分辨率版本的支持還不完善,開發者還是需要盡可能使用一個apk 文件適應多個分辨率。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 公安县| 公主岭市| 遂溪县| 招远市| 巢湖市| 扬中市| 漳平市| 沙雅县| 济阳县| 榆中县| 巴林左旗| 旌德县| 东平县| 大新县| 墨脱县| 西和县| 图们市| 旌德县| 沂水县| 阳春市| 比如县| 泸西县| 万州区| 普宁市| 沾化县| 闵行区| 临夏县| 利川市| 绥棱县| 浪卡子县| 平原县| 拜城县| 海阳市| 玛沁县| 三门县| 惠水县| 双辽市| 成武县| 龙山县| 余庆县| 乌兰县|