头文件
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.fuheng.aqws" //应用的包名
android:installLocation="preferExternal"> //应用安装的位置
权限
<uses-permission android:name="android.permission.INTERNET" /> //网络访问权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> //读SD卡权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> //写SD卡权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> //读手机权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> //开机广播,开机自启动服务(Android 4.0及以上版本接收)
<uses-permission android:name="android.permission.SEND_SMS"/> //读短信权限
<uses-permission android:name="android.permission.RECEIVE_SMS"/> //写短信权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> //获取手机精准的位置
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> //获取手机大体的位置
<uses-permission android:name="android.permission.CALL_PHONE" /> //挂断电话,打电话的权限
<uses-permission android:name="android.permission.READ_CALL_LOG" /> //读电话的记录
<uses-permission android:name="android.permission.WRITE_CALL_LOG" /> //写电话的记录
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> //监听外拨电话
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> //通过WindowManager添加自定义View到窗体
<uses-permission android:name="android.permission.READ_SMS"/> //读短信数据库的权限
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /> //清理运行进程的权限
<uses-permission android:name="android.permission.DELETE_CACHE_FILES" /> //要求系统应用
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/> //获取包的各种数据大小(比如:缓存)
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" /> //清除全部应用缓存
<uses-permission android:name="android.permission.GET_TASKS"/> //获取正在运行的应用(监听任务栈的权限)
application
Activity
<activity android:name="包类路径" //包类路径
android:label="应用的名字" //应用的名称(一般只有一个写)
android:theme="主题的样式" //主题的样式
android:screenOrientation="指定什么方向"; //指定什么方向
android:configChanges="横竖屏切换的设置"; //横竖屏切换的设置 {keyboardHidden|screenSize|orientation 屏幕大小.方向,软键盘发生变化都不会影响Activity的生命周期}
android:icon="应用程序的图标的地址" //应用程序的图标的地址
android:launchMode="启动模式" //启动模式
android:screenOrientation="屏幕的方向" //”landscape”(横屏,portrait是竖屏)
android:configChanges="keyboardHidden|orientation|screenSize" //当键盘隐藏、方向或大小发生改变的时候,调用activity的onConfigurationChanged方法保存activity状态
>
<android:langchMode="启动模式"> //启动模式
<intent-filter> //意图过滤器(匹配规则)
<action android:name="动作名称"/> //这个随便指定
<category android:name="android.intent.category.种类"/> //DEFAULT(默认)
<data android:属性="属性名称"/> //数据:scheme(数据前缀), host(主机名) ,mimeType(数据的格式)
</intent-filter>
</activity>
一:主题的样式
<item name="windowNoTitle">true</item> //没有标题栏+全屏
<item name="android:fastScrollThumbDrawable">@drawable/ic_launcher</item>
二:启动模式
###7.Activity的启动模式
(1)standard:每次激活Activity时(startActivity),都创建Activity实例,并放入任务栈;
![](http://i.imgur.com/64EfO0V.png)
(2)singleTop:如果某个Activity自己激活自己,即任务栈栈顶就是该Activity,则不需要创建,其余情况都要创建Activity实例;
![](http://i.imgur.com/7iYx5y8.png)
(3)singleTask:如果要激活的那个Activity在任务栈中存在该实例,则不需要创建,只需要把此Activity放入栈顶,并把该Activity以上的Activity实例都pop;
![](http://i.imgur.com/lHBkS2d.png)
(4)singleInstance:会单独创建一个Activity栈;
![](http://i.imgur.com/adhFrrx.png)
三意图过滤器
动作-->这个随便指定
种类-->XXXX-->DEFAULT(默认) ,
数据-->属性-->scheme(数据前缀), host(主机名) ,mimeType(数据的格式)
BroadcastReceive
<receiver android:name="包名"> //包类路径
<intent-filter android:priority="1000"> //意图过滤器,和优先级属性(-1000-1000)
<action android:name="接受的广播动作" /> //接受的广播动作
<data android:动作属性="数据参数类型"></data> //数据
</intent-filter>
</receiver>
一:数据的属性
scheme //(数据前缀)
host //(主机名)
mimeType //(数据的格式)
二:接受那个广播的动作(意图过滤器)"
<action android:name="android.intent.action.BOOT_COMPLETED"/> //开启启动完毕的事件
<action android:name="android.provider.Telephony.SMS_RECEIVED"/> //短信接受者(这个必须手打)
NEW_OUTGOING_CALL 新的电话向外拨打
PACKAGE_ADDEN 软件安装了
PACKAGE_REMOVED 软件卸载了
SCREEN_OFF 屏幕锁定
SCREEN_ON 屏幕解锁
ACTION_MEDIA_MOUNTED SD被挂载了的意图
Service
<service android:name="包类路径">可以有意图过滤器</service>
ContentProvider
<provider
android:authorities="主机名" //主机名可以随便起
android:name="aaa"> //包类名
</provider>
在XML里面增加测试 (eclipse时候用到的)
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="包名" >
</instrumentation>
<uses-library android:name="android.test.runner"/>