2021@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 属性默认为“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 标签

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

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

  1. 移动互联网开发技术教学网站项目研究综述

    2021@SDUSC 目录 第一篇:综述 一.项目介绍 二.项目分工 三.项目所用软件下载和环境配置 1.安装Android Studio 2.配置JDK环境 四.使用说明 第一篇:综述 一.项目介绍 ...

  2. 微型计算机原理与接口技术 教案,微型计算机原理与接口技术教学网站的设计和开发...

    摘要: 本论文工作是建设微型计算机原理及接口技术课程的教学辅助网站和开发该课程的考试系统,实现利用计算机网络技术辅助执行部分教学功能,向学生传授知识和训练技能的教学活动.该辅助教学系统主要由用Drea ...

  3. 基于前端页面开发课程教学网站的设计与实现

    前端页面开发课程教学网站出现以前,人们的学习形式单一,自主学习程度较低,资源共享程度不高,很难接触到更广的知识体系.造成了学习资源的浪费.市面上现在并没有专门的基于前端页面开发的课程教学网站,只有泛化 ...

  4. 山东大学软件学院2022-2023第二学期移动互联网开发技术期末考试回忆版

    山东大学软件学院2022-2023第二学期移动互联网开发技术期末考试回忆版 前言 1.考试时间:2023/6/6 10:10 – 12:10 2.考试科目:移动互联网开发技术(老师:LiXin) 3. ...

  5. 山东大学软件学院移动互联网开发技术期末考试回忆版

    文章目录 一.考试时间 二.考试题目 2.1 第一大题 2.2 第二大题 2.3 第三大题 2.4 第四大题 2.5 第五大题 2.6 第六大题 2.7 第七大题 2.8 第八大题 三.总结 一.考试 ...

  6. Java毕业设计_基于SSH的Java EE开发技术课程网站设计

    基于SSH的Java EE开发技术课程网站设计 基于SSH的Java EE开发技术课程网站设计mysql数据库创建语句 基于SSH的Java EE开发技术课程网站设计oracle数据库创建语句 基于S ...

  7. Java Web开发与实战_Java Web开发技术与实战项目

    [实例简介] 北大青鸟ACCP6.0 使用JSP/Servlet/Ajax技术开发新闻发布系统第一部分课件以及代码答案1到6章 [实例截图] [核心代码] 7.<JavaWeb开发技术> ...

  8. 3D开发技术学习网站

    一.3D综合类: 二.3D硬件技术: 三.OpenGL: 四.DirectX: 五.游戏引擎开发: 下载网址: 一.3D综合类 1.http://www.ultimategameprogramming ...

  9. php汽车租赁网站_ThinkPHP实战开发汽车租赁网站项目教程

    童老师thinkphp实战开发网站项目的第三季度,与第二季度相比,难度有了明显的提高不仅涉及到了RBAC权限控制功能,更是增加了手机端的功能,还有更多功能知识点就不一一列举,希望学员们能够自己在课程中 ...

最新文章

  1. Git 头指针分离与 FETCH_HEAD
  2. AI攻击AI,升级的网络安全战
  3. Istio 网关之南北向流量管理(内含服务网格专家亲自解答)
  4. hdu 2586 How far away ?
  5. Spring Bean 作用域之间的区别?
  6. BeanUtils.copyProperties()使用详解+在不同包的区别
  7. 如何获取 OSS AccessKeyId、AccessKeySecret
  8. [POJ1463] Strategic game
  9. 【英语学习】【English L06】U02 Food L2 Salad dressings
  10. Python机器学习:逻辑回归002逻辑回归的损失函数
  11. Web项目常用技术整理
  12. 2020-12-30 PMP 群内练习题 - 光环
  13. cmd - 批量重命名文件
  14. 《系统集成项目管理》第九章 项目成本管理
  15. android 释放摄像头,android – 为什么Camera需要在onPause()而不是onstop()方法中释放?...
  16. P1972 [SDOI2009]HH的项链 区间查询
  17. CSS:纯CSS3全屏背景图片幻灯片轮播
  18. 从端到边缘,无线技术赋能AI边缘计算处理器
  19. sci论文、ei论文和ieee论文三者之间有什么区别?
  20. 开发类 - DeepIn 安装 IDEA 并集成 Tomcat

热门文章

  1. ave could not be completed.Reason:Some characters cannot be mapped using 'ISO-8859-1'character enco
  2. 计算机网络笔记整理(四):网络层
  3. LSM零知识学习四、插桩原理实现细节(2)
  4. 女仆怎么画?裙子的阴影怎么画?
  5. linux下C++开发
  6. 养老院老人的定位手环,防止老人意外走失——苏州新导智能
  7. java 身份证号码正则表达式校验
  8. 怎么在服务器里做一个金币系统,如何在Reworld里存储玩家的金币
  9. java计算机毕业设计仟侬堂茶具网站源码+数据库+系统+lw文档+mybatis+运行部署
  10. 【30天学会接口自动化测试】接口自动化测试之实际项目做接口测试(6)