最近遇到一个问题,在做培训时,屡试不爽的广播消息竟然存在接收不到广播的情况。经了解后发现,Android O 已对隐式广播添加限制。so,下面总结下 Android 中广播相关。
最近遇到一个问题,在做培训时,屡试不爽的广播消息竟然存在接收不到广播的情况。经了解后发现,Android O 已对隐式广播添加限制。so,下面总结下 Android 中广播相关。
本文曝光湖南享学信息科技有限公司在盗用别人的文章做自己的知识储备被发现后,先拒绝道歉信,后承认道歉信并公开一个月以此请求删除原文,最后却在不到一周的时间删除道歉信,这两种行为。已阅读过的小伙伴可直接跳至第五节,见识下这种厚颜无耻的操作。
主要讲使用 eclipse
和 idea
创建 gradle
工程,以及基于现有工程添加 grale
支持。
更多关于 gradle
的高级用法,请见后续博文。
google 官方提供的 apk 文件签名工具。支持 V1 和 V2 签名规则。
因此,在签名时,只能选择 V1 或 V1+V2,不能只选择 V2 。
使用命令 apksigner sign
对 apk 文件进行签名。
常用参数有:
–in 指定待签名 apk 文件的路径。
–out 指定签名后的 apk 文件路径。可以同 –in 一样,可以不用。
可以在全部命令的最后指定待签名的 apk 路径。–in –out 即都指向该路径。
–v1-signing-enabled 使用 true false 指定是否使用 v1 规则签名。
–v2-signing-enabled 使用 true false 指定是否使用 v2 规则签名。
–debuggable-apk-permitted 使用 true false 指定是否允许对测试 apk 文件进行签名,默认是允许。但是官方不建议使用生产签名文件对测试 apk 文件进行签名。
–ks 指定 keystore 的路径。
–ks-pass 指定 keystore 的密码。如: pass:password。 password 是签名文件密码。
–ks-key-alias 指定使用的签名文件别名,通常一个签名文件可以包含多个别名。签名文件中只包含一个别名时,可以不使用。
–key-pass 指定别名 key 的密码。如: pass:password。 password 是签名文件密码。
以上是使用 keystore 对 apk 签名。apksigner 还支持更多种方式,如:私钥文件、JCA Providers 对 apk 签名。
1 | apksigner sign --ks debug.keystore |
使用 apksigner verify
校验已签名的 apk 文件。包括查看签名方式和使用的证书信息。
常用参数有:
-v 显示签名详情,是否使用 v1 、v2 签名。
–in 指定待校验的 apk 文件路径。当 apk 路径放在命令末尾时,此参数可以省略。
–print-certs 显示 apk 文件中包含的签名文件证书信息。
1 | 示例 1 |
是 jdk 提供的对 jar 文件的签名工具。
使用命令 jarsigner [options] jar-file alias
对 apk 文件 签名 。其中 jar-file 对应 apk 文件路径,alias 对应 签名文件中的别名。 options 常用参数如下:
-keystore 指定使用的签名文件的路径。
-storepass 指定使用签名文件的密码。
-keypass 指定使用 alias 对应的密码。可以不使用,执行时手动输入。
-signedjar 指定签名后的 apk 的路径。
-verbose 输出详细的签名过程日志。
由于没有指定被签名 apk 文件的路径和使用的签名文件别名的参数,因此需要将这两个参数放在命令的最后。
1 | 示例,如需添加 -verbose,请放在test.apk之前 |
使用命令 jarsigner -verify [options] jar-file [alias...]
-verbose 输出详细的签名信息。
-certs 输出每个文件使用的签名证书。
1 | 示例 |
用上述命令只能检查 apk 中每个文件的签名情况,并不能获知使用的签名文件具体信息。建议使用 apksigner
命令或 keytool
命令。
1 | keytool -printcert -jarfile test.apk |
是 zip 压缩包的一个对齐工具。对齐之后可以减少 app 运行时的内存消耗。
1 | 对齐 apk 文件,并输出信息 |
由于 zipalign 命令是对 apk 文件进行修改,因此不适用于使用 V2 签名机制签名过的 apk 文件。因此建议先对齐,再签名。
觉得有用?那打赏一个呗。[去打赏](/donate/)
这篇文章主要介绍加密算法的另一使用场景——文件加解密。事实上,已于 16 年实现过加密文件的功能并用于公司的项目中。确保安全的前提下,此次分享只介绍些简单的加密方法和实现过程。更高级深入的研究还请自行解决。
关于加密,此处没有更加通俗易懂的解释。与同是对于字节类型数据处理的编码和摘要对比:
加密是可逆的,但只知道加密算法并不能解密,还需要知道加密密钥。
接下来,将针对几个常见的加密算法:DES
、3DES
、AES
、RSA
的 Java 实现及其相关进行介绍,由于之前实现过 DES
和 AES
算法,因此具体算法说明,后续有空会写到。
信息摘要,英译 Message Digest 。看见首字母这么大的 M
、D
有没有立即联想到 MD5
算法。其实 MD5
算法只是目前比较流行的信息摘要算法,在它之前,还出现过 MD2
MD4
,以及目前仍然在用的安全散列算法(Secure Hash Algorithm) SHA1
和 SHA256
都属于信息摘要算法的一种。国家密码管理局于2010年12月也发布了一种信息摘要算法 SM3
。
由于对信息摘要算法研究并不透彻,因此这篇文章将重点讲 jdk 支持的三个常见摘要算法的使用:MD5
、SHA1
、SHA256
。
之所以取这个题目,是因为在面试的过程中,许多求职者对问题“请列举常用的加密算法”给出了比较普遍的回答:“用过 MD5
和 Base64
”,更有甚者说,“ Base64
是对称加密, MD5
是非对称加密”。那么,通过接下来的三篇文章科普下,在编程过程中常见的三个术语:字节编码 、信息摘要、 数据加密。
作为 Android
开发中的四大组件之一以及 Android
设备与用户交互的媒介, Activity
的相关用法应作为 Android
开发入门学习的重要知识点。