中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

從零開始熟悉AS中手機app的開發(一)

發布時間:2020-08-25 13:59:08 來源:網絡 閱讀:948 作者:ccpit2b2c 欄目:移動開發

2016-05-04

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

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


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

 

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

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

<?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>

    <!-- 授權訪問網絡 -->
    <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>

Axmlns:android

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


Bpackage

指定本應用內Java主程序包的包名,它也是一個應用進程的默認名稱


CsharedUserId

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

DsharedUserLabel

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


EversionCode

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


FversionName

這個名稱是給用戶看的,你可以將你的APP版本號設置為1.1版,后續更新版本設置為1.22.0版本等等。。。


GinstallLocation

安裝參數,是Android2.2中的一個新特性,installLocation有三個值可以選擇:internalOnlyautopreferExternal

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

選擇auto,系統將會根據存儲空間自己去適應

選擇internalOnly是指必須安裝到內部才能運行

(注:需要進行后臺類監控的APP最好安裝在內部,而一些較大的游戲APP最好安裝在SD卡上。現默認為安裝在內部,如果把APP安裝在SD卡上,首先得設置你的level8,并且要配置android:installLocation這個參數的屬性為preferExternal)

這位天才的博文總結如下:

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

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

    一般打開AS,一般我們首先會發現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 (以及許多其他Androidxml的文件)在第一個元素中包含了命名空間的聲明xmlns:android="http://schemas.android.com/apk/res/android"。這樣使得Android中各種標準屬性能在文件中使用,提供了大部分元素中的數據。

 

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

 

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

 

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

 

    manifest

  根節點,描述了package中所有的內容。在它之下能放置:

 

  uses-permission

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

 

    permission

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

 

    instrumentation

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

 

    application

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

 

    activity

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

 

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

 

  另外,為了支持運行時查找你的 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 獲得數據的改變或者發生的操作,即使它當前不在運行。利用 activity 標記,你能選擇地包含一個或多個 receiver 所支持的 元素;

 

    service

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

 

    provider

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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

勐海县| 巴楚县| 白河县| 信宜市| 辽宁省| 株洲县| 濮阳县| 平塘县| 西昌市| 新和县| 葵青区| 河西区| 绥滨县| 台安县| 双江| 论坛| 信宜市| 南开区| 黄冈市| 巴林左旗| 曲阜市| 沁阳市| 拉孜县| 依兰县| 汶上县| 灌云县| 云梦县| 龙岩市| 平原县| 大庆市| 牟定县| 连州市| 抚松县| 阿克| 孝感市| 四会市| 鄂尔多斯市| 新营市| 砀山县| 北川| 阳谷县|