從零開始熟悉AS中手機app的開發(fā)(一)-創(chuàng)新互聯(lián)

2016-05-04

成都創(chuàng)新互聯(lián)公司:于2013年創(chuàng)立為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為1000多家公司企業(yè)提供了專業(yè)的網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計和網(wǎng)站推廣服務(wù), 按需定制由設(shè)計師親自精心設(shè)計,設(shè)計的效果完全按照客戶的要求,并適當?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。

   我喜歡,看別人寫的程序手記,那種真實的理解和感受,看這樣的文章,是一種享受,一種飄浮在意識空間中的獨立世界的純意識層面思考的快樂,全息而富有色彩,真實而無極限。

下面是看到一段移動端開發(fā)者的博文手記:

   ......“AndroidManifest.xml 是每個 android 程序中必須的文件。它位于 application 的根目錄,描述了 package 中的全局數(shù)據(jù),包括了 package 中暴露的組件( activities, services, 等等),它們各自的實現(xiàn)類,各種能被處理的數(shù)據(jù)和啟動位置?!?.....

   當我看到這段文字的時候,感到很精彩,顯然看到了作者條理邏輯分明的邏輯中樞神經(jīng),這種精彩,就像是看到了《***帝國》中描述的一個精密的控制中心,一個處理大廳或各條走廊和控制中心,,延伸開來各種處理組件和處理程序,結(jié)構(gòu)清晰,邏輯豐富而充實。

以此為例,我試圖來理解看到的這段代碼:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.knight.android.test"
    android:versionCode="1"
    android:versionName="1.0" >
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name="AndroidTestActivity"
            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>

    <!-- 授權(quán)訪問網(wǎng)絡(luò) -->
    <uses-permission android:name="android.permission.INTERNET"/>

</manifest>

第一段顯然是標明xml的版本號和編碼字符集。

1、第一層(<Manifest>):(屬性)

<manifest  xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.woody.test"
          android:sharedUserId="string"
          android:sharedUserLabel="string resource"
          android:versionCode="integer"
          android:versionName="string"
          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
</manifest>

A、xmlns:android

定義android命名空間,一般為http://schemas.android.com/apk/res/android,這樣使得Android中各種標準屬性能在文件中使用,提供了大部分元素中的數(shù)據(jù)。

B、package

指定本應(yīng)用內(nèi)Java主程序包的包名,它也是一個應(yīng)用進程的默認名稱

C、sharedUserId

表明數(shù)據(jù)權(quán)限,因為默認情況下,Android給每個APK分配一個唯一的UserID,所以是默認禁止不同APK訪問共享數(shù)據(jù)的。若要共享數(shù)據(jù),第一可以采用Share Preference方法,第二種就可以采用sharedUserId了,將不同APK的sharedUserId都設(shè)為一樣,則這些APK之間就可以互相共享數(shù)據(jù)了。詳見:http://wallage.blog.163.com/blog/static/17389624201011010539408/

D、sharedUserLabel

一個共享的用戶名,它只有在設(shè)置了sharedUserId屬性的前提下才會有意義

E、versionCode

是給設(shè)備程序識別版本(升級)用的必須是一個interger值代表app更新過多少次,比如第一版一般為1,之后若要更新版本就設(shè)置為2,3等等。

F、versionName

這個名稱是給用戶看的,你可以將你的APP版本號設(shè)置為1.1版,后續(xù)更新版本設(shè)置為1.2、2.0版本等等。。。

G、installLocation

安裝參數(shù),是Android2.2中的一個新特性,installLocation有三個值可以選擇:internalOnly、auto、preferExternal

選擇preferExternal,系統(tǒng)會優(yōu)先考慮將APK安裝到SD卡上(當然最終用戶可以選擇為內(nèi)部ROM存儲上,如果SD存儲已滿,也會安裝到內(nèi)部存儲上)

選擇auto,系統(tǒng)將會根據(jù)存儲空間自己去適應(yīng)

選擇internalOnly是指必須安裝到內(nèi)部才能運行

(注:需要進行后臺類監(jiān)控的APP最好安裝在內(nèi)部,而一些較大的游戲APP最好安裝在SD卡上?,F(xiàn)默認為安裝在內(nèi)部,如果把APP安裝在SD卡上,首先得設(shè)置你的level為8,并且要配置android:installLocation這個參數(shù)的屬性為preferExternal)

這位天才的博文總結(jié)如下:

   此文件一個重要的地方就是它所包含的 intent-filters 。這些 filters 描述了 activity 啟動的位置和時間。每當一個 activity (或者操作系統(tǒng))要執(zhí)行一個操作,例如:打開網(wǎng)頁或聯(lián)系簿時,它創(chuàng)建出一個 intent 的對象。它能承載一些信息描述了你想做什么,你想處理什么數(shù)據(jù),數(shù)據(jù)的類型,和一些其他信息。Android 比較了 intent 對象中和每個 application 所暴露的 intent-filter 中的信息,來找到最合適的 activity 來處理調(diào)用者所指定的數(shù)據(jù)和操作。

除了能聲明你程序中的 Activities, Content Providers, Services, 和 Intent Receivers,你還能指定 permissions 和 instrumentation (安全控制和測試)在 AndroidManifest.xml 文件中。天哪???!這些都是什么???別著急,呵呵,這些都是運行手機app程序需要定義好的一些文件,以后會逐漸的知道,先不用管,看看有這么多的內(nèi)容為我們服務(wù),有多么好?

   一般打開AS,一般我們首先會發(fā)現(xiàn)AndroidManifest.xml,這是什么文件呢?一個基本而重要的全局文件。

這是一個簡單的AndroidManifest.xml。

< ?xml version="1.0" encoding="utf-8"?>

< manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.my_domain.app.helloactivity">

< application android:label="@string/app_name">

< activity class=".HelloActivity">

< intent-filter>

< action android:value="android.intent.action.MAIN"/>

< category android:value="android.intent.category.LAUNCHER"/>

< /intent-filter>

< /activity>

< /application>

< /manifest>

值得一提一些常用之處:

· 幾乎所有的 AndroidManifest.xml (以及許多其他Android的xml的文件)在第一個元素中包含了命名空間的聲明xmlns:android="http://schemas.android.com/apk/res/android"。這樣使得Android中各種標準屬性能在文件中使用,提供了大部分元素中的數(shù)據(jù)。

· 大部分manifests包含了單個< application>的元素,它定義了所有的application級別組件和屬性,并能在package中使用。

· 任何被用戶看作頂層應(yīng)用程序,并能被程序啟動器所用的package,需要包含至少一個Activity組件來支持MAIN操作和LAUNCHER種類,如上述代碼中所見。

這里是AndroidManifest.xml文件結(jié)構(gòu)的一個詳細的列表,描述了所有能被使用的標記。

    manifest

根節(jié)點,描述了package中所有的內(nèi)容。在它之下能放置:

uses-permission

請求你的 package 正常運作所需賦予的安全許可。見 SecurityModel 來獲得許可的更多的信息。一個 manifest 能包含零個或更多此元素。

    permission

聲明了安全許可來限制哪些程序能你 package 中的組件和功能。見 SecurityModel 來獲得許可的更多的信息。一個 manifest 能包含零個或更多此元素。

    instrumentation

聲明了用來測試此 package 或其他 package 指令組件的代碼。見 Instrumentation 來獲得許可的更多的信息。一個 manifest 能包含零個或更多此元素。

    application

包含 package 中 application 級別組件聲明的根節(jié)點。此元素也可包含 application 中全局和默認的屬性,如標簽,icon,主題,必要的權(quán)限,等等。一個 manifest 能包含零個或一個此元素(不允許多余一個)。在它之下能放置零個或更多下列組件聲明:

    activity

Activity 是用來與用戶交互的主要工具。當用戶打開一個應(yīng)用程序的初始頁面時一個 activity ,大部分被使用到的其他頁面也由不同的activity所實現(xiàn)并聲明在另外的 activity 標記中。

注意:每一個 activity 必須要一個 標記對應(yīng),無論它給外部使用或是只用于自己的 package 中。如果一個 activity 沒有對應(yīng)的標記,你將不能運行它。

另外,為了支持運行時查找你的 activity, 你能包含一個或多個 元素來描述你 activity 所支持的操作:

    intent-filter

聲明了指定的一組組件支持的 Intent 值,從而形成了 IntentFilter。除了能在此元素下指定不同類型的值,屬性也能放在這里來描述一個操作所需的唯一的標簽,icon 和其它信息。

    action

組件支持的 Intentaction。

    category

組件支持的 IntentCategory.

    type

組件支持的 Intentdata MIME type.

    schema

組件支持的 Intentdata URI scheme.

    authority

組件支持的 Intentdata URI authority.

    path

組件支持的 Intentdata URI path.

    receiver

IntentReceiver 能使的 application 獲得數(shù)據(jù)的改變或者發(fā)生的操作,即使它當前不在運行。利用 activity 標記,你能選擇地包含一個或多個 receiver 所支持的 元素;

    service

Service 是能在后臺運行任意時間的組件。利用 activity 標記,你能選擇地包含一個或多個 receiver 所支持的 元素;

    provider

ContentProvider 是用來管理持久化數(shù)據(jù)并發(fā)布給其他應(yīng)用程序使用的組件。AndroidManifest.xml 是每個 android 程序中必須的文件。它位于 application 的根目錄,描述了 package 中的全局數(shù)據(jù),包括了 package 中暴露的組件( activities, services, 等等),它們各自的實現(xiàn)類,各種能被處理的數(shù)據(jù)和啟動位置。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標題:從零開始熟悉AS中手機app的開發(fā)(一)-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://muchs.cn/article24/djjeje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站網(wǎng)站導航、品牌網(wǎng)站設(shè)計、企業(yè)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司