Android入门学习笔记整理(四)

来源:互联网 发布:看股票的软件 编辑:程序博客网 时间:2024/05/18 00:20

AndroidManifest

http://www.imooc.com/video/1565
摘自 Ephone_Chan
AndroidManifest.xml配置文件介绍:
本质:AndroidManifest.xml是整个应用的主配置清单文件。
包含:该应用的报名、版本号、组件、权限等信息
作用:记录该应用的相关的配置信息。
AndroidManifest.xml常用标签解读
1.全局篇(包名、版本信息)
2.组件篇(四大组件)
3.权限篇(申请权限和定义权限)

全局篇
http://www.imooc.com/video/1566
摘自 如饥似渴的学习IN

(1)应用的包名以及【版本信息】的管理

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.project.p001_notes"    android:versionCode="1"    android:versionName="1.0" >

(2)控制android版本信息(可支持的最低版本、你期望的系统版本)

     <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="17" />

组件篇:
http://www.imooc.com/video/1567
摘自 Koterwong

manifest注册四大组件:
application标签包含四大组件,切一个manifest只能有一个application节点
application属性:
图标:android:icon
标题:android:label
主题样式:android:theme

摘自 qq_孤独行风_0
组件篇主要由application这一个大标签包裹着,其属性可以设置图标、标题和主题样式。
注意:一个清单文件只能包含一个application节点,但可以在其里面包裹各种各样的组件,比如安卓的四大组件。


Activity(活动)
我们通过android:name指定类的名称,推荐使用类的全名。
启动任何一个没有在清单中定义的Activity会抛出异常。所以必须定义。
intent-filter和组件之间的通信有关。通信就必须明白彼此是谁,有两种方式可以标明身份:1.android:name;2.intent-filter。前者可视为组件的真名,后者可看作组件的名片或者是过滤器。
在新建一个项目的时候,系统会自动给MainActivity配置intent-filter,表示该Activity是App的入口Activity。

Service和Activity一样,都有android:name属性和intent-filter子标签。
Activity和Service的区别:
Activity可以显示界面,Service是作为后台逻辑代码的处理。

Content Provider(内容提供者)
主要作用:管理数据库的访问、程序内和程序间的数据的共享

Broadcast Receive(广播接收者) 可以理解为全局事件的监听器。注册后就会生效。我们知道intent-filter相当于一个个人介绍(名片),或者一个过滤器,而Broadcast Receive起到了在全局范围内接收这种介绍或者过滤器的作用。
当与子标签里面的android:name的同名的action(也可以是其他信息)被广播出来的时候,就会执行相应的代码。


实现界面跳转需要在OnCreate()里写以下代码

Intent intent = new Intent();intent.setAction("android.intent.action.MAIN");intent.addCategory("android.intent.category.LAUNCHER");startActivity(intent);

权限篇
http://www.imooc.com/video/1568、
摘自 qq_从路人到恋人_0

点击AndroidManifest.xml文件下方面的标签permission,进入截图所示页面,点击add,选择User Permission(使用权限),在右边的name的下拉列表中选择常用的权限,比如图中的INTERNET网络权限,选好后点击add就完成了添加。保存退出,就会发现在AndroidManifest.xml的<uses-permission>中出现了我们刚刚选择的几个权限,每个权限对应一个<uses-permission>标签。

使用系统权限
<uses-permission>申请权限
声明了哪些是由你定义的权限,而这些权限是应用程序正常执行锁必需的。在安装程序的时候,你设定的所有权限将会告诉用户,由他们来决定是否同意。对很多本地Android服务来说,权限都是必需的,特别是那些需要付费或者有安全问题的服务(例如:拨号、接收SMS或者使用基于位置的服务)
补充:SMS:Short Message Service 手机短信服务。

自定义权限
http://www.imooc.com/video/1569
摘自 慕粉3595949

在manifest中自定义权限步骤
//步骤1,新建permission 标签(第一个应用)

<permissionAndroid;name="xxx" //自定义权限的名字Android:protectionlevel="nomal"> 定义权限级别-》普通(nomal)</permission>

2,自定义权限的使用(第一个应用):

<activityandroid:permission="xxx"></activity>

3,在第二个应用添加

<uses-permission android:name="xxx"> //这样就可以访问第一个应用的内容,若不添加,则访问不到,程序会报错

自定义权限的目的:保护应用的某一组件(例如某一activity组件)不轻易被其他应用调用.
其他程序若要使用,可以用<uses-permission android:name-"自定义名字" >使用权限

总结
摘自 姜汁撞了鲜奶腰
1.每个组件都必须包含android:name这个属性,推荐用全名称(包名.类名),intent-filter(过滤器)是可以选写的
2.四大组件中除了BroadcastReceiver可以使用代码声明注册以外,其他组件必须要在Manifest文件中进行声明配置,否则会报错
3.可以使用alt+/的组合快捷键,通过代码提示加快书写效率
4.android的系统权限有很多,不用全不记忆,只需会像查字典一样,学会查询和使用就可以了
5.自定义的权限其实是为了保护应用程序的组件不会轻易被另一个应用程序访问