
android
明宇小生
这个作者很懒,什么都没留下…
展开
-
用户密钥和工作密钥分离方案
原创 2021-05-31 22:24:37 · 365 阅读 · 0 评论 -
ARouter原理分析
1、自定义注解,提供给APP使用2、自定义注解处理器,在编译阶段生成java类。类中包含了APP对不同类进行的注解映射3、代码运行时,解析包名下的dex文件,找到所有的java类,找到类中的方法。获取到映射关系。4、根据影响关系进行路由...原创 2021-02-03 16:08:09 · 177 阅读 · 0 评论 -
https通信的安全机制
此文只描述整体安全原理,具体业务上的演变未在此文中描述。信息 + HASH = 摘要 摘要 + 私钥 = 数字签名(给收方做对比用的,验证收发内容是否一致)公钥 + 相关信息 +CA私钥 = 数字证书(验证发送者是否正确,是可信任的公钥)以一次服务器与客户端的数据交互说明安全机制,整体流程如下:服务器会将自己的公钥(A)和公司相关信息发送给CA(国际证书管理机构),CA会使用自己的私钥(B)加密服务器发过来的公钥(A)和相关信息,生成CA证书(C)。服务器得到CA证书(C)后,会将-通原创 2021-01-11 16:53:33 · 266 阅读 · 0 评论 -
Android签名安全机制
此文只描述安全本质,由于Anroid基于性能考虑优化,以及V1、V2版本变更。具体实现可能有差异。APK打包时包含以下两个文件:CERT.SF:该文件中包含每一个文件的摘要(散列值)(D)CERT.RSA:该文件中包含签名公钥(A)和使用签名私钥加密后的SF摘要信息(B)、以及摘要算法(C)。APK安装校验过程如下:APK安装时会使用CERT.RSA的摘要算法(C)算出每个文件的摘要和CERT.SF中的值(D)进行比较使用CERT.RSA的摘要算法算出CERT.SF这个文件的摘要信息A1,原创 2021-01-11 16:26:49 · 176 阅读 · 0 评论 -
生成new和old文件
stashname=git stash creategit diff HEAD --name-only | xargs git archive $stashname > new.zipgit diff HEAD --name-only | xargs git archive HEAD > old.zip原创 2020-11-16 10:56:38 · 637 阅读 · 0 评论 -
Android自定义脑图布局
public class TreeLayout extends ViewGroup {Tree tree;int mDy = 60;int mDx = 100;private ScaleGestureDetector mScaleGestureDetector = new ScaleGestureDetector(getContext(), new ScaleGestureDetector...原创 2020-05-07 15:14:48 · 434 阅读 · 2 评论 -
Android前言技术---自学指引
热升级, 热修复, App Instant, 强制更新, 组件化路由架构Arouter, RxJava, IOC架构方法, Hook技术腾讯微信Tinker热升级的开源方案原理解析阿里百川Sophix热修复内核原理解析App Instant google类热更新技术原理与实战银行APP加密算法与原理详解组件化集中式路由—阿里Arouter原理解析造轮子——手写ARouter 组件化路...原创 2020-04-03 14:48:08 · 179 阅读 · 0 评论 -
Android binder通信的底层原理
核心技术:当把同一块物理页面同时映射到进程空间和内核空间时,当需要在两者之间传递数据时,只需要其中任意一方把数据拷贝到物理页面,另一方直接读取即可,也就是说,数据的跨进程传递,只需要一次拷贝就可以完成。https://blog.youkuaiyun.com/u010961631/article/details/20479507https://blog.youkuaiyun.com/u010961631/article...原创 2020-01-21 11:59:48 · 226 阅读 · 0 评论 -
ANR分析实践
https://zhuanlan.zhihu.com/p/22272957转载 2020-01-14 14:38:13 · 134 阅读 · 0 评论 -
常用的排序算法(一)
排序原创 2016-08-15 09:47:35 · 318 阅读 · 0 评论 -
Android几种常见的内存泄漏
内存泄漏原创 2016-08-15 09:44:05 · 372 阅读 · 0 评论 -
ContentProvider调用了Application导致的空指针
Application的使用的注意事项今天遇见一个问题,一个ContentProvider调用了Application这个Context出现了空指针。最后定位原因Application的Oncreate方法中进行了Context的初始化,这就设计到了四大组件什么时候调起进程的问题。Application中的onCreate方法会在进程启动的时候被调用,但是Android进程被启动的场景多种多样...原创 2018-05-16 00:00:11 · 1228 阅读 · 0 评论 -
Android线程与进程
Android 线程 进程原创 2016-08-29 15:26:54 · 439 阅读 · 0 评论 -
顺序锁
Java自身不能防止死锁也不能对死锁进行检测。当两个或多个线程以不同的顺序请求和释放锁时,就可能会发生死锁。所以程序必须以相同的顺序来请求和释放锁,避免产生死锁。错误示例(不同的锁次序):final class BankAccount {private double balanceAmount; // Total amount in bank accountBankAccount(doub...原创 2019-03-13 20:24:43 · 916 阅读 · 0 评论 -
Android PendingIntent使用的特殊情况
PendingIntent原创 2016-08-27 10:55:14 · 521 阅读 · 0 评论 -
Android应用安全分析大纲
Android应用安全分析大纲一、安全威胁分析1、首先绘制数据流图,即APP使用到的业务数据走向。对于外部交互频繁的应用时十分必要的2、识别出可信任的边界,即哪些代码逻辑是完全由APP控制,识别出可信任的边界后,对于不可信任(不能完全控制)的对象要进行安全风险分析二、安全分析的几种方式外部交互分析通过识别可信任边界得到的不可信对象,进行危险分析:1、仿冒:外部对象被仿冒,导致交互的数...原创 2018-10-09 11:07:46 · 312 阅读 · 0 评论 -
android跨用户访问数据库
Android定义了可以通过URI跨用户访问数据库的方式:uri = Uri.parse(“content://” + userId + “@com.android.email.huawei.mdm.provider/syncCalendar”);userId就是区分用户的,无论进程在那个用户下,可以通过userId访问特定数据库下的数据...原创 2018-10-10 09:50:06 · 979 阅读 · 0 评论 -
Android 签名
Android 签名生成三个文件:1、MANIFEST.MF:此文件是对APK中每个文件的算出散列值,即想要修改APK中的任何文件都要修改此文件,使其对应。2、CERT.SF:此文件是对MANIFEST.MF中的每一项内容计算的散列值,即想要修改APK中的任何文件都要修改MANIFEST.MF和CERT.SF使其对应3、CERT.RSA:此文件是使用官方CA加密的所以同样不可修改,此文件中包...原创 2018-10-10 12:31:03 · 160 阅读 · 0 评论 -
自动调节字体大小的TextView
自动调节字体大小的TextView今天项目中遇见一个需求,在此记录。需求描述:TextView中text过长的时候,优先缩小字体,如果缩小字体依旧过长,再换行。Google原生自动缩放是以高度作为标准的,只有高度不够时才会进行缩放。与我们需要以宽度为标准不同,故自定义View自定义TextView代码如下:import android.content.Context;import an...原创 2019-01-03 10:32:27 · 517 阅读 · 0 评论 -
Mark
https://blog.youkuaiyun.com/lc_miao/article/details/86528790原创 2019-02-16 12:12:04 · 146 阅读 · 0 评论 -
AS编译jar
https://blog.youkuaiyun.com/o365flysky/article/details/78894424转载 2019-05-24 15:26:17 · 863 阅读 · 0 评论 -
Java Jvm、Android Dalvik和Android Art(一)——Android之路
这是第一篇博客,从此踏入程序员的“不归路”-什么是JVMJVM 是 Java 的核心和基础,在 Java 编译器和 os 平台之间的虚拟处理器。它是一种基于下层的操作系统和硬件平台并利用软件方法来实现的抽象的计算机,可以在上面执行 Java 的字节码程序。简单的说,JVM 是java程序运行的平台。java编译执行的流程的三个步骤及其功能:java源码编译机制 》》将java源码编译成JVM可原创 2016-06-20 14:25:53 · 481 阅读 · 0 评论 -
自定义系统权限
Android permission转载 2016-08-02 10:56:20 · 501 阅读 · 0 评论 -
Java集合个人总结
集合原创 2016-08-03 10:43:47 · 263 阅读 · 0 评论 -
View的绘制流程(需要进一步加深)
View绘制原创 2016-08-03 16:20:30 · 267 阅读 · 0 评论 -
Android Activity生命周期
Activity 生命周期转载 2016-06-21 14:53:24 · 241 阅读 · 0 评论 -
Android多种多线程机制使用说明(个人总结)
AsyncTask HandlerThread ThreadPool Loader 多线程 并发原创 2016-06-21 14:29:03 · 1023 阅读 · 0 评论 -
Android多线程总结(转载)
Threading Performance 在程序开发的实践当中,为了让程序表现得更加流畅,我们肯定会需要使用到多线程来提升程序的并发执行性能。但是编写多线程并发的代码一直以来都是一个相对棘手的问题,所以想要获得更佳的程序性能,我们非常有必要掌握多线程并发编程的基础技能。 众所周知,Android 程序的大多数代码操作都必须执行在主线程,例如系统事件(例如设备屏幕发生旋转),输入事件(例如用户点转载 2016-06-21 12:16:04 · 327 阅读 · 0 评论 -
Java Jvm、Android Dalvik和Android Art(三)——Android之路
Android ARTART和Dalvik一样都以一种运行时环境,最主要的区别在于上文提到的AOT和JIT。 JIT(即时编译):在运行时将文件编译为机器语言,导致在程序运行时增加一个编译的步骤,硬性软件性能和软件启动时间。 AOT(预编译本质为静态编译):在应用安装时就进行静态编译,这使得程序占用的内存空间更大。 ART采用了AOT模式,大大提高了软件的性能,Dalvik采用了JIT模式。所原创 2016-06-21 11:26:25 · 542 阅读 · 0 评论 -
Java Jvm、Android Dalvik和Android Art(二)——Android之路
Android dalvik我们已经知道jvm,其实jvm和dalvik虚拟机共享差不多的特性, 例如,它们都是解释执行,并且支持即时编译(JIT)、垃圾收集(GC)、Java本地方法调用(JNI)和Java远程调试协议(JDWP)等。那么为什么Android不索性使用jvm呢?这是由于Android本身的使用场景和商业需求而决定的。大多数商业应用的技术都是在技术和商业需求的折衷。言归正传,And原创 2016-06-21 11:06:48 · 522 阅读 · 0 评论 -
Android总有那些你看了无数遍也记不住的简单知识点
Asset Raw原创 2016-07-17 08:55:48 · 647 阅读 · 0 评论 -
Android Activity知识点
Activity原创 2016-07-16 21:36:33 · 488 阅读 · 0 评论 -
Android退出启动了多个Activity的应用程序
Android 多Acvtivity应用的退出原创 2016-07-16 21:29:49 · 263 阅读 · 0 评论 -
Android ListView的局部刷新
ListView 局部刷新 适配器原创 2016-07-15 21:03:10 · 3264 阅读 · 0 评论 -
Android 图片的异步加载(有缓存机制)
Android图片的异步加载原创 2016-07-23 09:40:37 · 425 阅读 · 0 评论 -
Android studio下NDK开发环境配置及开发流程
NDK开发原创 2016-07-18 10:36:45 · 502 阅读 · 0 评论 -
多线程那些事
多线程原创 2016-07-28 14:06:03 · 569 阅读 · 0 评论 -
Android的几种通讯方式
Android跨进程通讯的几种方式转载 2016-07-09 11:33:29 · 1236 阅读 · 0 评论 -
DOM SAX和PULL解析
DOM SAX pull转载 2016-07-09 11:11:17 · 1144 阅读 · 0 评论 -
String StringBuffer和StringBuilder
String StringBuffer StringBuilder原创 2016-07-09 09:52:19 · 218 阅读 · 0 评论