1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 移动互联网开发技术教学网站项目研究第六篇

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

时间:2022-04-14 03:03:04

相关推荐

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

@SDUSC

这里写目录标题

AndroidManifest.xml配置文件`manifest` 标签`application` 标签 显示定位`uses-permission`Application中的service声明`meta-data`标签

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属性默认为“/apk/res/Android”,该标签指定了Android的命名空间。<manifest>标签使用各种属性来指定应用程序的各种元数据,包括标题、图标和主题等。它还可以作为一个包含活动(Activity)、服务(Service)、内容提供器(Provider)和广播接收器(Broadcast Receiver)标签的容器,用来指定应用程序组件。

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

application标签

<applicationandroid: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声明

<serviceandroid: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-dataandroid: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,即开发密钥,然后才可以使用各种功能。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。