- 博客(73)
- 资源 (27)
- 收藏
- 关注

原创 带你彻底理解RSA算法原理
1. 什么是RSARSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法。在了解RSA算法之前,先熟悉下几个术语 根据密钥的使用方法,可以将密码分为对称密码和公钥密码 对称密码:加密和解密使用同一种密钥的方式 公钥密码:加密和解密使用不同的密码的方式,因此公钥密码通常也称为非对称密码。
2015-10-09 21:08:47
113997
46
原创 Android-DataBinding源码探究
基本使用关于DataBinding的使用可以直接参考官网数据绑定库介绍,此处就直接忽略。本篇主要是阐述DataBinding是如何实现liveData的数据更新到对应xml布局准备Demo直接clone如下demogit clone https://github.com/xiaobaoyihao/AndroidDataBindingDemo.git该样例就是实现最简单的DataBindingQ1:绑定类是如何持有View?绑定类是用于访问布局的变量和视图,所有绑定类都是继承ViewDataB
2021-02-22 20:43:31
637
原创 Android构建流程——篇八
Task29 checkDebugLibraries1. inut/ouputtaskName:checkDebugLibraries=========================================================output:/Users/dingbaosheng/work/mockuai/project/AndroidGradleTaskDemo/app/build/intermediates/check-libraries/debug这个任务就是用来做校验
2020-11-23 14:54:48
963
原创 Android构建流程——篇七
Task24 transformClassesWithDexBuilderForDebug1.input/ouputtaskName:transformClassesWithDexBuilderForDebuginput:/Users/apple/.gradle/caches/transforms-1/files-1.1/adapters-3.2.0.aar/49b3d7e4ab68d92f056ea8f56b33e9fb/jars/classes.jarinput:/Users/apple/.gr
2020-11-16 15:23:27
827
原创 Android构建流程——篇六
Task17: javaPreCompileDebug1. input/ouputinput:/Users/apple/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/2774ea4f1cf1e83a6ad8e8d3c8b463b6/jars/classes.jarinput:/Users/apple/.gradle/caches/transforms-1/files-1.1/constraint-layout-1.1.3.a
2020-11-01 20:57:58
1058
原创 Android构建流程——篇五
文章目录Task13: processDebugManifest1. input/ouput2. 核心类(MergeManifests)Task13: processDebugManifest1. input/ouputtaskName:processDebugManifestinput:/Users/apple/work/project/AndroidGradleTaskDemo/app/build/intermediates/apk_list/debug/mainApkListPersisten
2020-09-27 11:51:23
1511
原创 Android-gradle插件调试
1. 配置AndroidStudio -> Edit Configurations -> + -> Remote2. 调试调试指定任务, ./gradlew --rerun-tasks taskName -Dorg.gradle.daemon=false -Dorg.gradle.debug=true添加–rerun-tasks 是为了防止gradle增量构建导致任务并不能每次执行3. 测试此处演示调试androd processDebugResources任务执行
2020-09-13 22:06:48
735
原创 Android构建流程——篇四
@[TOPIC]Task9:generateDebugResValues1. input/ouputtaskName:generateDebugResValues=========================================================output:/Users/dingbaosheng/work/mockuai/project/AndroidGradleTaskDemo/app/build/generated/res/resValues/debug简单
2020-08-09 17:00:47
739
原创 Android构建流程——篇三
Task1 checkDebugManifest1. input/ouputtaskName:checkDebugManifest=========================================================output:/Users/apple/work/project/AndroidGradleTaskDemo/app/build/intermediates/check-manifest/debug2. 核心类(CheckManifest)@TaskAc
2020-06-27 19:38:58
907
1
原创 Android构建流程——篇二
Android构建流程——篇二预操作任务列表预操作为说明Android构建过程中gradle执行的各task,写了简单demogit clone https://github.com/xiaobaoyihao/AndroidGradleTaskDemo.git任务列表
2020-06-26 10:17:27
1280
原创 Android构建流程——篇一
这里写自定义目录标题Android-Plugin Task(一)apk 构建流程参考文献Android-Plugin Task(一)大家平时开发Android项目时一般都是点击AS run按钮,这样apk会自动安装到手机上,这整个过程到底发生来什么呢?今天就来梳理下整个流程gradle做了什么,讲解前先来熟悉下apk整体构建流程apk 构建流程官方新图上面是官方新图,感觉没有????旧图详细从上图可以看出APK打包流程主要分以下几个步骤aapt工具处理app res文件,生成R.jav
2020-06-21 18:16:38
1313
1
原创 谈谈数字签名
数字签名是什么相信大家不会陌生,日常我们和公司签合同时会签名,刷信用卡支付时会签名;而数字签名就是将日常中这种签名功能在计算机中实现的一种技术;数字签名不仅能够识别篡改和伪装,还能防止否认等特性举个例子,塔山攻坚战大家都听过,比如林彪向塔山将领部下发送一条电报内容 “守不住塔山我要你的脑袋 –林彪” 那么塔山收到该消息如何知道该命令是不是真的是林彪发出的呢?有没有可能是敌人伪装的呢?而数字签名
2020-03-22 13:56:45
1042
原创 Android Lifecycle源码解析(一)
Android Lifecycle源码解析(一)首先我们看HomeActivity中我们添加到一行代码public class HomeActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate...
2020-03-22 10:05:34
523
原创 Android Lifecycle组件使用
Android Lifecycle组件使用android中很多组件都具备生命周期功能,系统框架会在适合时机调用相应的生命周期方法,作为开发者在开发业务时可能需要争对组件的生命周期需要作出相应的处理;比如ondestory需要释放资源,防止内存泄漏甚至引发应用崩溃;Android的生命周期Lifecycle就是用来解决该问题,同时可以将业务处理代码从Fragment或Activity相关的生命周...
2020-03-21 21:29:09
460
原创 Android-JS&Native交互的几种可行性方案&H5白屏问题解决方式
在Android中可能因为业务场景需要,JS需要调用Native业务逻辑代码,Native需要通知JS,也即需要实现JS和Native之间通信;Java通知JS方式:WebView.load("javascrpt:method("+param+");");JS通知Java有如下几种方式1、addJavascriptInterface具体使用示例参见官网描述但该方案存在版本兼容问题,在4.2版本以下系
2019-10-27 22:03:25
1196
原创 如何扩展Android富文本之Html标签
前言大家都知道Android 富文本其实就是HTML标签那些东西,但Android本身对其支持有限,今天就说说如何对其进行扩展富文本在Android设置富文本一般如下String txt = "<strong>Hello World</strong>";textView.setText(HtmlCompat.fromHtml(txt,HtmlCompat.FROM...
2019-10-27 21:38:39
2562
原创 GIT常用命令
Branch//创建分支git branch [newBranchName]//切换分支git checkout [branchName]//创建并切换到新分支git checkout -b [newBranchName]//合并分支//将branch2分支合并到当前分支(branch1)git checkout out [branch1]git merge [branc...
2019-04-05 22:28:49
234
原创 Python Excel表格操作总结
最近无意中帮一个朋友处理下表格,表格有几千行,让我生成一个新格式的表格我们看源文件格式期望生成的格式对比发现其实只要对源文件第二列“题干”进行解析处理,分别读取出题目、选项(A-G) ;读取第三列的标准答案;识别完成后依次写入新表格即可先了解下python读取excel工具类,核心就是读写操作,知道后一切就OK了读操作import xlrd# 加载文件workbook = ...
2018-10-18 11:43:29
1767
原创 Android-实现一个简单的自动翻译插件
目录实现一个简单的自动翻译插件实现思路几个重要的实现方法1、解析xml2、写文件3、 翻译使用实现一个简单的自动翻译插件最近在开发项目是要将Android相关的资源进行国际化,需要将values目录中所有相关的字符串资源(中文),生成匹配的一套英文且保存在values-en目录;当然国际化不仅仅是要英文还要提供台湾等其他语言,这里为了演示方便,只说下如何实现一个简单的翻译成英文的gradle插...
2018-10-17 15:46:21
4498
原创 如何快速将Android库发布到JCenter
将Android库发布到jcenter是为了更方便到引用 步骤主要分为一下几个步骤 1. 新建工程和要发布到moule 2. 修改工程和module的build.gradle 3. 访问https://bintray.com/ 注册账号并新建一个仓库 4. 执行clean install publish bintrayUpload 任务 5. 将库发布到jceter等待审核通过 6....
2018-07-16 10:02:55
556
原创 Android如何自定义Gradle插件
Android-如何自定义gradle插件自定义gradle插件可以实现定制自己的构建流程,以达到复用目的;1. 自定义插件方式自定义插件有三种方式添加脚步 在你的app项目的build.gradle中直接使用groovy脚步语言编写插件 这样方式好处是插件能自动变异且被包含到构建脚步中,你无需做任何处理;缺点是插件到逻辑都放到都build.gradle中去了,增加了脚步的复...
2018-07-12 15:32:44
2109
原创 搭建Jenkins+Sonarqub+Mysql+Android(上篇)
搭建Jenkins+Sonarqub+Mysql平台以下都是在Ubuntu16.04系统下搭建1. 搭建jenkinsJDK配置具体参照参见上篇文章Tomcat配置 首先下载官网tomcat 本文选择8.5.x版本以支持java7android later列表内容快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 ...
2018-07-06 17:56:24
598
原创 Android-Multidex安装流程解析
Android-Multidex安装流程解析关于为什么需要引入Multidex支持以及如何配置Multidex可参考官网,本篇不做阐述,本篇着重分析Multidex1.0.2源码进行分析大家都知道配置Multidex都需要在Application中的添加这样代码public class MyApplication extends SomeOtherApplication { @
2018-02-01 14:00:40
1984
原创 迁移至Android3.0遇到一些问题
一、AS3.0新增功能此处略(自行Google )官方文档二、迁移后速度对比 gradle2.2 gradle3.0 首次 770s 260s 修改代码(一行) 291s 123s 修改代码(一行) 250s 140s 修改代码(一行) 252s 119s迁移后3.0后速度提升接近50%左右;首次build使用6min左右,以后每次能控制
2017-11-25 13:16:14
515
原创 Android-带你从源码角度理解SharedPreferences存储原理
SharedPreferences因非常适合存储较小键值集合数据且使用非常简单的特点,而受到广大程序员们热爱。
2017-11-14 15:42:08
3474
原创 Android组件化初探
Android组件化初探1. 现状随着业务增加,代码量急剧增加,大大延长了编译时间,短则3min,长则7、8min;反正就是时间太太太太太太长。。。。。。很多同学为节省开发时间,自己新建新的app,完成开发后,再合并到project中2. 原理编译期间动态设置自己业务Module属性(app/library) 在开发期间,只需要编译自己的业务模块代码,并将自己业务模块Module
2017-09-11 17:03:21
422
RadioButton + Fragment 实现选显卡功能
2015-06-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人