IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 移动互联网开发技术教学网站项目研究第五篇 -> 正文阅读

[移动开发]移动互联网开发技术教学网站项目研究第五篇

2021@SDUSC

AndroidManifest.xml配置文件

每一个 Android 项目都包含一个单(Manifest)文件夹。其下有整个应用主配置清单文件 AndroidManifest.xml,它是 XML 格式的 Android 程序声明文件,
在其中包含 Android 系统运行程序前所必须掌握的重要信息,这些信息包含应用程序名称、图标、包名称、模块组成、授权和 SDK 最低版本等。在其中可包含较多的标签元素,其中<manifest> 、<application>不可省略。

manifest 标签

其中,<manifest> 标签用于设置与项目相关的一些属性,比如用于唯一标识应用程序的 package 属性,是一个应用进程的默认名称,例如所分析代码中的"com.example.mymap";用于记录应用程序版本的 Android:versionName 属性,用户根据该属性查看应用程序版本信息,需要具备一定的可读性;android:versionCode属性设备程序可识别程序版本,必须是一个整数值代表APP更新次数。其中的 xmlns:Android 属性默认为“http://schemas.Android.com/apk/res/Android”,该标签指定了Android的命名空间。<manifest> 标签使用各种属性来指定应用程序的各种元数据,包括标题、图标和主题等。它还可以作为一个包含活动(Activity)、服务(Service)、内容提供器(Provider)和广播接收器(Broadcast Receiver)标签的容器,用来指定应用程序组件。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.mymap">
</manifest>

application 标签

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyMap">

位于<manifest> 标签下层,<manifest> 标签仅能包含一个<application> 标签。但是,<application> 标签有很多子标签,其属性可以作为子标签的默认属性,常用的属性包括:应用名android:label,应用图标android:icon,应用主题android:theme等。常用的子标签介绍如下:
<activity> 标签:应用程序显示的每一个 Activity 都要求有一个 <activity> 标签,并使用 Android:name 属性指定类的名称。需要包含核心的启动 Activity 和其他所有可以显示的屏幕或者对话框。Android应用中的每一个Activity都必须在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。每一个 Activity 节点都允许使用 intent-filter 子标签来指定哪个 Intent 启动该活动。

<activity android:name=".DescriptionActivity"></activity>
<activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>

<intent-filter>标签用于Intent消息过滤器的声明,<intent-filter>标签可以放在<activity><activity-alias><service><receiver>元素标签中,来区分可用于处理消息的Activity控制器、Service服务和广播接收器Broadcast Receiver。Intent消息包含有名称、动作、数据、类别等几个重要属性。<intent-filter>中必须包含有<action>,用于描述具体消息的名称,上述代码中"android.intent.action.MAIN"决定应用程序最先启动的Activity;<category>用于表示能处理消息组件的类别,即该Action所符合的类别,"android.intent.category.LAUNCHER"决定应用程序是否显示在程序列表里;而<data>用于描述消息需要处理的数据格式,可以使用正则表达式来限定数据来源。
<service>标签:和<activity>标签一样,应用程序中使用的每一个 Service 类都要创建一个新的 service 标签。Service 标签也支持使用 intent-filter 子标签来允许后面的运行时绑定。
<provider>标签:<provider>标签用来说明应用程序中的每一个内容提供器。内容提供器是用来管理数据库访问以及程序内和程序间共享的。所分析代码中未涉及。
<receiver>标签:通过添加 <receiver>标签,可注册一个广播接收器,不需要事先启动应用程序。通过在声明中注册一个广播接收器,可以使这个进程实现完全自动化,就像全局事件监听器一样。注册后,只要相匹配的Intent被应用程序广播,应用程序会立即启动,注册的广播接收器也会立即运行。

显示定位

uses-permission

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

为了访问用户定位,需要在AndroidManifest.xml中的<uses-permissio>标签进行配置权限。在安装程序时,设定的所有权限将会告诉用户,由他们来决定是否应用程序可以使用这些权限。
开发人员在开发软件的时候,也需要声明相应的权限。android:name的值可以是其他app通过<permission>声明的,也可以是系统的权限名称,比如希望软件能发短信,需要声明软件调用短信的权限,否则软件运行的时候就会报错。
Android的权限在AndroidManifest.xml文件里配置。AndroidManifest文件中有四个标签与permission有关,它们分别是 permission、 permission-group、permission-tree 和 uses-permission。其中最常用的是 uses-permission,当程序中需要获取某个权限的时候就必须在manifest文件中声明uses-permission。
在这里插入图片描述
android.permission.INTERNET:获取网络访问权限,可能产生GPRS流量,开启网络可以使用网络定位;android.permission.ACCESS_NETWORK_STATE:获取网络信息状态,比如当前的网络连接是否有效;android.permission.READ_EXTERNAL_STORAGE:读取外置存储权限,如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要;android.permission.WRITE_EXTERNAL_STORAGE:允许程序写入外部存储,如SD卡上写文件android.permission.ACCESS_COARSE_LOCATION:允许一个程序访问CellID或WiFi热点来获取粗略的位置;android.permission.ACCESS_FINE_LOCATION:该权限可以获取精确位置,通过GPS芯片接收卫星的定位信息,定位精度达10米以内;
自定义权限方法如下:

<permission android:label=”自定义权限”
    android:description=”@string/hello”
    android:name=”com.example.project.PERMITTED_ACTION”
    android:protectionLevel=”normal”
    android:icon=”@drawable/ic_launcher”>
</permission>

android:label:定义权限介绍,将会显示给用户,值可以用String数据。
android:description:比label更长的对权限的描述。值是通过R文件中获取的,一般不要直接写string值,例如这里的”@string/hello”。
android:name:权限名字,如果其他应用软件引用该权限需要填写这个名字。
android:protectionLevel:权限级别,分为4个级别:normal:低风险权限,在安装的时候,系统会自动授予权限给该应用程序。dangerous:高风险权限,系统不会自动授予权限给app,在用到的时候,会给用户提示。signature:签名权限,在其他app引用声明的权限的时候,需要保证两个app的签名一致。这样系统就会自动授予权限给第三方app,而不提示给用户。signatureOrSystem:这个权限是引用该权限的app需要有和系统同样的签名才能授予的权限,一般不推荐使用。

Application中的service声明

<service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" />

声明一个service(Service的子类)作为应用程序的组件。 与activities不同,services没有用户界面。它们被用来实现了后台长期运行操作或者提供一个丰富的交互API供其它应用程序使用。所有的service在manifest文件中用如上附代码service标签代表。android系统不能发现没有声明在manifest文件中的service,service将不能运行。
android:name:服务类名,发布应用程序后,不应更改此名称,除非设置 android:exported=“false”。;android:enabled:服务开关,指示这个service是否能被android系统实例化。android:process:要运行服务的进程的名称。通常,应用程序的所有组件都在为应用程序创建的默认进程中运行,它与应用程序包同名。如果分配给此属性的名称以冒号 (’:’) 开头,如上附代码,则会在需要时创建应用程序私有的新进程,并且服务在该进程中运行。

meta-data标签

<meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="pFIaHasC5YakU2s2irvyhd0LWaUQ7jQf"></meta-data>

<meta-data>标签用于存储预定义数据,与<intent-filter>类似,也可以放在activity、activity-alias、service和receiver这四个标签中。Meta数据一般会以键值对的形式出现,个数没有限制,而这些数据都将被放到一个Bundle对象中,程序中我们则可以使用ActivityInfo、ServiceInfo甚至ApplicationInfo对象的metaData属性中读取。上述代码是百度地图SDK的API_Key,即开发密钥,然后才可以使用各种功能。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-12 19:42:39  更:2021-11-12 19:43:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:39:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码