日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

《Android UI基础教程》——1.2节Android 应用程序的基本结构

發(fā)布時(shí)間:2025/1/21 Android 131 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Android UI基础教程》——1.2节Android 应用程序的基本结构 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本節(jié)書摘來(lái)自異步社區(qū)《Android UI基礎(chǔ)教程》一書中的第1章,第1.2節(jié)Android 應(yīng)用程序的基本結(jié)構(gòu),作者 【美】Jason Ostrander,更多章節(jié)內(nèi)容可以訪問(wèn)云棲社區(qū)“異步社區(qū)”公眾號(hào)查看

1.2 Android 應(yīng)用程序的基本結(jié)構(gòu)
Android UI基礎(chǔ)教程
在開始一個(gè)Android項(xiàng)目時(shí),Eclipse IDE已經(jīng)為你創(chuàng)建了一個(gè)初始的工程結(jié)構(gòu)。這個(gè)工程包含你需要用來(lái)構(gòu)建應(yīng)用程序的所有所需元素,你也應(yīng)把所有的工作內(nèi)容放置于這個(gè)工程中。盡管可以創(chuàng)建一個(gè)應(yīng)用程序之間的代碼共享的庫(kù)工程,但對(duì)于絕大多數(shù)應(yīng)用程序來(lái)說(shuō),并沒(méi)有這個(gè)必要。本節(jié)將會(huì)介紹基本的工程文件夾結(jié)構(gòu)以及應(yīng)該在哪里放置代碼、布局文件和素材。

1.2.1 文件夾結(jié)構(gòu)
對(duì)在Package Explorer的示例工程文件夾的基礎(chǔ)上進(jìn)行擴(kuò)展,并仔細(xì)觀察工程結(jié)構(gòu)。Android使用的是標(biāo)準(zhǔn)的Java應(yīng)用程序的布局。表1.1總結(jié)了工程結(jié)構(gòu)。



1.2.2 Android Manifest
Android manifest包括應(yīng)用程序的結(jié)構(gòu)和功能的所有信息。它包括應(yīng)用程序所使用的所有活動(dòng)、所提供的服務(wù)、任何通過(guò)內(nèi)容提供商可訪問(wèn)的數(shù)據(jù)庫(kù)內(nèi)容以及它處理的任何意圖。

`<?xml version=``"``1.0``"`` encoding=``"``utf-8``"``?>` `<manifest xmlns:android=``"``http://schemas.android.com/apk/res/android``"` ` `` `` package=``"``com.example``"` ` `` `` android:versionCode=``"``1``"` ` `` `` android:versionName=``"``1.0``"``>` ` `` `` <uses-sdk android:minSdkVersion=``"``14``"`` />` ` `` `` <uses-feature android:name=``"``android:hardware.bluetooth``"``/>` ` `` `` <supports-screens android:anyDensity=``"``true``"``/>` ` `` `` <application android:icon=``"``@drawable/icon``"` ` `` `` ``→`` android:label=``"``@string/app`_`name``"``>` ` `` `` <activity android:name=``"``.ExampleActivity``"` ` `` `` `` `` `` ``android:label=``"``@string/app`_`name``"``>` ` `` `` `` ``<intent-filter>` ` `` `` `` `` `` ``<action android:name=``"``android.intent.action.MAIN``"`` />` ` `` `` `` `` `` `` <category android:name=``"``android.intent.category.` ` `` `` `` `` `` `` ``→`` LAUNCHER``"`` />` ` `` `` `` `` `` `` </intent-filter>` ` `` `` `` `` </activity>` ` `` ``</application>` `</manifest>`

在該manifest中你可以聲明應(yīng)用要正常運(yùn)行所需的硬件功能。舉個(gè)例子,如果應(yīng)用需要觸屏設(shè)備才能夠正常運(yùn)轉(zhuǎn),那么在manifest中需要包括進(jìn)下面這行:

`<uses-feature android:name=``"``android.hardware.touchscreen``"` `→ ``android:required=``"``true``"`` />`

按照應(yīng)用所需來(lái)聲明硬件功能使得Android Market可以根據(jù)用戶的硬件配置來(lái)合理地篩選應(yīng)用。這樣沒(méi)有觸屏手機(jī)的用戶就不會(huì)下載到要求有觸摸屏才能正常運(yùn)行的應(yīng)用。

你應(yīng)該努力使應(yīng)用程序盡可能廣泛地兼容。列出應(yīng)用需要使用的功能,通過(guò)代碼來(lái)動(dòng)態(tài)決定它們的可用性并使得降低用戶體驗(yàn)的方式盡可能保持優(yōu)雅。

在該manifest中你同樣要聲明應(yīng)用所需使用的權(quán)限。與硬件要求不同,所有運(yùn)行應(yīng)用所需的權(quán)限聲明都必須包括在manifest中。不存在有可選的聲明。

注意: 用戶對(duì)于要求權(quán)限過(guò)于寬泛的應(yīng)用毫不留情。尤其是對(duì)于那些要求位置信息的應(yīng)用。仔細(xì)考慮應(yīng)用的權(quán)限需求,不要請(qǐng)求多余的權(quán)限。

應(yīng)用程序使用的圖標(biāo)和標(biāo)簽也要在manifest中聲明。你可以把這些屬性賦給manifest中的許多XML元素。最重要的是頂層的<application>元素。它決定應(yīng)用程序?qū)⑷绾卧谥鹘缑嬉约皯?yīng)用頁(yè)展示。然而,圖標(biāo)/標(biāo)簽的組合并不只是適用于<application>元素。你可以把它們應(yīng)用于權(quán)限元素之上,這將會(huì)在用戶確認(rèn)安裝應(yīng)用程序時(shí)展示出來(lái)。你也可以把它們置于<activity>元素,用戶將會(huì)在進(jìn)程監(jiān)視器中看到它們。這些元素能夠被任何子組件繼承。因此,如果已經(jīng)設(shè)置好<application>圖標(biāo)和標(biāo)簽,但是<activity>和<intent>的圖標(biāo)和標(biāo)簽并沒(méi)有設(shè)置,那么這些元素將會(huì)默認(rèn)使用<application>的圖標(biāo)和標(biāo)簽。此設(shè)置允許你使用特定組件的圖標(biāo)和標(biāo)簽來(lái)告知用戶應(yīng)用程序的功能。

最后,manifest是聲明所支持的Android API版本的地方。正確地聲明API級(jí)別很重要,因?yàn)閲L試引用不支持的API將會(huì)導(dǎo)致你的應(yīng)用程序崩潰。這也能很好地防止應(yīng)用程序被安裝于未測(cè)試過(guò)的新的API版本。表1.2列出了更多關(guān)于API級(jí)別的信息。



1.2.3 資源
Android應(yīng)用在res/文件夾中存儲(chǔ)所有的資源。什么是資源?基本上,所有不是Java代碼的都是資源。圖像、布局文件、應(yīng)用程序字符串、局部字符串、主題甚至動(dòng)畫都放在res/文件夾中。Android使用目錄結(jié)構(gòu)來(lái)隔離資源使得在不同設(shè)備配置上都能使用。在Hello World應(yīng)用中,有3個(gè)drawable文件夾:drawable-ldpi、drawable-mdpi和 drawable-hdpi,分別代表低、中、高密度的資源。運(yùn)行時(shí),Android系統(tǒng)會(huì)基于設(shè)備硬件選擇合適的資源。如果沒(méi)有資源能夠匹配,它將會(huì)選擇最接近的匹配資源。在第3章中對(duì)此將會(huì)有深入講解。

在布局中使用的常量值都放置在res/values/文件夾下。你應(yīng)當(dāng)把所有的顏色、尺寸規(guī)格、風(fēng)格以及字符串放置在此文件夾中。在示例的Hello World應(yīng)用中,有一個(gè)單個(gè)的strings.xml文件包含所有的應(yīng)用中用戶可見的字符:

`<?xml version=``"``1.0``"`` encoding=``"``utf-8``"``?>` `<resources>` ` <string name=``"``hello``"``>Hello World, ExampleActivity!</string>` ` `` `` <string name=``"``app`_`name``"``>Example</string>` `</resources>`

你不能使用Java代碼或者XML布局文件中的字符串常量。任何用戶可見的字符串都需要在strings.xml文件中聲明。這使得你的資源隨后進(jìn)行本地化更加容易。在應(yīng)用中可通過(guò)字符串元素的名稱屬性引用這些字符串。

res/layout/文件夾也包含聲明應(yīng)用程序布局的XML文件。Android UI可以通過(guò)XML或者Java代碼創(chuàng)建。推薦使用XML構(gòu)建布局,因?yàn)樗軌蚝芎玫匕裊I和應(yīng)用邏輯分離開。不同的文件夾名代表不同的布局文件,以適配不同配置的設(shè)備。

總結(jié)

以上是生活随笔為你收集整理的《Android UI基础教程》——1.2节Android 应用程序的基本结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。