组件签名

来源:互联网 发布:java程序员进阶之路 编辑:程序博客网 时间:2024/06/05 04:26

使用命令对APK包签名

  1. 生成key store库keytool -genkeypair -alias crazyit -keyalg RSA -validity 400 -keystore crazyit.jks

    • -genkeypair:指定生成数字证书
    • -alias:指定生成数字证书的别名
    • -keyalg:生成数字证书的算法,RSA
    • -validity:生成数字证书有效期
    • -keystore:数字证书存储路径
  2. 按照指令输入一些配置,此时会生成未签名APK包

  3. 使用jarsigner命令对未签名APK包进行签名jarsigner -verbose -keystore crazyit.jks -signedjar

helloworld_crazyit.apk app_relese_unaligned.apk crazyit

  • -verbose:指定生成详细输出
  • -keystore:数字证书的存储路径
  • -singedjar:3个参数分别为:签名后的APK包、未签名的APK包、数字证书的别名

android四大组件

  1. Activity:负责与用户交互的组建,setContentView(View或者布局管理资源)显示指定组件
  2. Service:通常位于后台运行,有自己独立的生命周期

  3. BroadcastReceiver:广播消息接收器,监听事件源是组件

    • 实现BroadcastReceiver子类
    • 重写onReceive(Context context, Intent intent)
    • 其他组件通过sendBroadcast(),sendStickyBroadcast(),sendOrderedBroadcast()发送广播信息
    • 如果该BroadcastReceiver子类也对该send出的消息“感兴趣”(使用IntentFilter[意图过滤器]配置),BroadcastReceiver的onReceiver()方法将会被触发
    • 通常用两种方式来注册该组件

    • 1、Java代码中Context.registReceiver()注册
    • 2、AndroidMainfest.xml中使用<receiver.../>

4.contentProvider:应用之间数据交换,实现以下抽象方法:

  • insert(Uri, ContentValue)向contentProvider插入数据
  • delete(Uri, ContentValue)删除ContentProvider指定数据
  • update(Uri, ContentValue, String, String[])更新指定数据
  • query(Uri, String[], String, String)

Intent和IntentFilter

Intent封装了当前组件需要启动或者触发的目标组件的信息,Activty,Servise,BroadcastReceiver组件之间通信都以Intent为载体

显式Intent:指明要启动或者触发的组件名
隐式Intent:指明要启动或者触发的组件需要满足声明条件,须解析出它的条件,再查找出符合条件的组件,启动或者触发它,组件通过IntentFilter来声明自己能处理那些Intent

AndroidManifest.xml清单文件

P30,一些元素和配置所代表的意思

权限说明

1、声明运行该应用程序本身所需要的权限

在manifest…下添加子元素uses-permission..

2、声明调用该应用所需的权限

在组件元素下添加子元素uses-permission…声明调用该程序所需的权限

0 0
原创粉丝点击