zoukankan      html  css  js  c++  java
  • Android基础之一:Manifest.xml

    • Manifest.xml是Android应用程序(Android Application)开发的基础配置文件,处于项目工程的最底层,全名为AndroidManifest.xml
    • 首先Manifest文件是一个xml文件,必须符合xml文件定义规范
      • XML文件定义声明:<?xml version="" encoding="utf-8"?>
      • 关键xml节点-->manifest
        • 属性:xmlns:android="https://schemas.android.com/apk/res/android",值基本固定不变
        • 属性:package="packageName",应用程序的包名,包名可以随便定义,不一定是存在的包的名称,但是为了在Activity、Receiver、Service指向的类能够简单化,通常包名定义为应用程序的主包名
        • 属性:android:versionCode="" 是一个应用程序内部版本,这个版本是开发者使用的,以及发布应用程序使用的,但是外部用户是看不见的,市场通过这个字段来判断是否有更新
        • 属性:android:versionName="" 是应用程序的外部版本,这个版本是给用户看的,一般在应用程序的关于中显示,实际与升级没有任何关系,但是为了保证同步,升级后versionName也相应增加
        • 属性:android:installLocation="",包括三个值(auto,internalOnly,preferExternal),分别表示系统选择、只安装到内部存储中、优先安装到外部存储中(没有外部存储或者外部存储容量不足时才会转内部存储),通常使用auto,由系统判断,但是有些加载大量资源的应用,如游戏,离线地图等一般都安装在外部存储中,普通的应用优先安装在内部存储中
        • 属性:android:sharedUserId="",Android的应用程序一般运行都在不同进程中的,不能直接进行数据资源共享,而通过两种方法能够实现应用之间的数据共享,一种是ContentProvider,这里不做介绍,另一种就是通过配置两个应用程序的sharedUserId相同来实现
        • 属性:android:sharedUserLabel="",用户可读的字符串,没有什么实际作用,只有在具有sharedUserId的时候才有用
      • 子节点:
        • application
        • activity
        • receiver
        • service
        • provider
        • meta-data
        • uses-sdks
        • uses-feature
        • uses-configuration
        • activity-alias
        • permission
        • uses-permission
        • support-screen
    • 在代码中获取manifest中某些属性:通过PackageInfo来获取,flag传递0,如果获取权限,使用PackageManager.GET_PERMISSIONS
        PackageInfo packageInfo = getPackageManager().getPackageInfo("com.example.AndroidTest_01", PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
    • 不同应用数据共享:sharedUserId配置相同,在一个应用中可以通过另一个应用的包名创建其全局上下文对象
        Context context=createPackageContext("com.example.AndroidTest_01",Context.CONTEXT_INCLUDE_CODE|Context.CONTEXT_IGNORE_SECURITY);
      • 创建引用上下文对象需要知道其包名,并且配置flag为包含代码与忽视安全机制
      • 通过该Context实例能够访问另一个应用中的任何开放资源
    • Manifest基本结构
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              package="com.example.AndroidTest_01"
              android:versionCode="1"
              android:installLocation="preferExternal"
              android:sharedUserId="com.tiza"
              android:versionName="1.0">
        <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="21"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
        <application
                android:label="@string/app_name"
                android:allowClearUserData="true"
                android:theme="@android:style/Theme.Holo.Light"
                android:icon="@drawable/ic_launcher">
            <activity
                android:name="MyActivity"
                android:launchMode="standard"
                android:windowSoftInputMode="adjustResize"
                android:icon="@drawable/back6"
                android:label="主页">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
            <activity android:name=".TAct"
                      android:icon="@drawable/logo"
                      android:parentActivityName=".MyActivity"
                      android:label="TAct">
            </activity>
            <service android:name=".MService"/>
        </application>
    </manifest>
  • 相关阅读:
    笔试复习题《三》
    笔试复习题《二》
    《数据结构(C#语言描述)》
    设计模式《一》
    笔试复习题《一》之常用的排序算法
    序列模型(1)----简单介绍
    梯度消失、爆炸原因及其解决方法
    算法66------计算各个位数不同的数字个数【动态规划】
    TensorFlow实战学习笔记(14)------VGGNet
    TensorFlow技术解析与实战学习笔记(13)------Mnist识别和卷积神经网络AlexNet
  • 原文地址:https://www.cnblogs.com/xl-xlg/p/5026004.html
Copyright © 2011-2022 走看看