Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com LruCache DiskLruCache 缓存 简介 案例 MD 目录 目录LruCache缓存策略LruCache 的使用LruCache 的实现原理LinkedHashMap 简介构造函数put 方法get 方法总结LruCache 源码类说明文档源码DiskLruCache缓存路径…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com protobuf Protocol Buffers 简介 案例 目录 目录简介优缺点proto3简介使用步骤下载 protobuf 编译器编写 .proto 文件编译 .proto 文件生成 java 类项目中添加 protobuf runtime测试 java 类在 Android 中使…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 集合 enum 枚举 简介 案例 目录 目录Enum 类构造方法静态方法新增的方法Object 中的方法关键字 enum测试代码最简单的定义形式详细使用案例测试在 switch 语句中使用 enum Enum 类 这是所有 Java 语言枚举类型的公共基本类. public abstrac…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录简介基本功能演示运行期修改类原始类修改未加载过的类修改已加载过的类获取类基本信息创建一个新类重新生成类的字节码文件原始类给类添加方法给类添加属性修改类的方法修改注解的值实现动态代理 简介 官网 GitHub WIKI -非常详细 Java bytecode engineering…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录TabLayout 简介文档简介内部类和内部接口XML attributes公共方法两种模式默认样式测试代码ActivityXML布局定义的样式 TabLayout 简介 文档简介 文档位置 依赖 implementation 'com.android.support:desig…
目录 目录 反编译 AndroidKiller 逆向 实践案例 MD AndroidKiller 简介 插件升级 基本使用 实践案例 修改清单文件 打印 debug 级别的日志 方式一:直接代理 Log 类 方式二:通过修改字段值修改判断条件 方式三:通过修改方法返回值修改判断条件 方式四:修改 BuildConfig.DEBUG 中的 DEBUG 常量值 如何hook混淆后指定类中的指定方法 完整案例 基本步骤 XposedInit XposedZygoteInit Markdown版本笔记…
这几天一直研究在安卓开发中图片应该如何处理,在网上翻了好多资料,这里做点小总结,如果朋友们有更好的解决方案,可以留言一起交流下. 内存缓存技术 在我们开发程序中要在界面上加载一张图片是件非常容易的事情,但如果是加载一堆图片呢?比如ListView,GridView这类的控件,随着屏幕滑动,图片加载也会越来越多,应用程序所可以使用的内存毕竟是有限的,如果一味的去加载图片,很容易导致OOM(Out Of Memory)内存溢出,导致程序崩溃. 这里我们一般的做法是将显示在屏幕之外的图片进行内存回收,…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com ThreadLocal 简介 案例 源码分析 MD 目录 目录先来看基本用法对ThreadLocal的理解ThreadLocal 详解正确理解 ThreadLocalThreadLocal 源码分析构造方法set 方法ThreadLocalMapget 方法总结一个类型转换的坑 先来看基本…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com RxJava RxPermissions 动态权限 简介 原理 案例 MD GitHub Demo地址 目录 目录基本使用步骤注意事项和优点API测试案例原理构造方法request 方法申请权限的方法申请结果回调方法 基本使用步骤 RxPermissions是基于 RxJava 开发的用于…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com LeakCanary 内存泄漏 监测 性能优化 简介 原理 MD GitHub:https://github.com/square/leakcanary Demo地址:https://github.com/baiqiantao/LeakCanaryTest.git 目录 目录介绍简单使用更…
Android清除本地数据缓存代码案例 直接上代码: /*  * 文 件 名:  DataCleanManager.java  * 描    述:  主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录  */  package com.test.DataClean;    import java.io.File;   import android.content.Context;  import android.os.Environment…
分布式缓存Hazelcast案例一 Hazelcast IMDG Architecture 今天先到这儿,希望对您技术领导力, 企业管理,物联网,  系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考作用 , 您可能感兴趣的文章: 2017-2018年Scrum状态调查报告2016年测试状态调查2017年IT行业测试调查报告项目管理-习惯发生范围变更前端性能核对表Checklist-2018大型电商互联网性能优化案例国际化环境下系统架构演化微服务架构设计视频直播平台的系统架构…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 服务 AIDL 定向tag IPC Parcelable 案例 MD 目录 目录AIDL 基础知识AIDL 是什么基本语法定向 tag为何要实现 Parcelable 接口手动添加 readFromParcel() 方法提示找不到 Java 类怎么办测试案例实现 Parcelable 接口…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com AS 自定义 Gradle plugin 插件 案例 MD 目录 目录AS 中自定义 Gradle plugin编写插件传递参数发布插件到仓库使用插件 AS 中自定义 Gradle plugin 参考1 参考2 结合 AndroidStudio,自定义Gradle plugin可以完成很多…
HTTP协议之缓存简介 by:授客 QQ:1033553122 用浏览器查看缓存 IE为例,Tools->Internet options -> View files,如图 点击图示的View files,打开缓存目录 C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files   测试实验 访问前清空以上目录下的所有文件,访问网址:http://ishouke.blog.sohu.com,然后…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 插件化 VirtualAPK 简介 体验 MD 目录 目录简介基本使用宿主项目的配置插件项目的配置构建插件时可能出现的问题相关知识VirtualAPK 的特性主流插件化框架的对比为什么选择 VirtualAPK如何选择适合的插件化框架VirtualAPK 原理简介已知约束目前暂不支持的特性…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com AIDL 定向tag IPC 案例 MD 目录 目录定向tag总结测试案例AIDL文件夹服务端客户端演示过程源码分析BookManager.Stub.ProxyBookManager.Stub.onTransact 定向tag 总结 Android官网上在讲到AIDL的地方关于定向tag是…
一.hibernate缓存简介 缓存的范围分为3类:  1.事务范围(单Session即一级缓存)     事务范围的缓存只能被当前事务访问,每个事务都有各自的缓存,缓存内的数据通常采用相互关联的对象形式.缓存的生命周期依赖于事务的生命周期,只有当事务结束时,缓存的生命周期才会结束.事务范围的缓存使用内存作为存储介质,一级缓存就属于事务范围.  2.应用范围(单SessionFactory即二级缓存)     应用程序的缓存可以被应用范围内的所有事务共享访问.缓存的生命周期依赖于应用的生命周期,…
Activity public class MainActivity extends Activity {     private GridView mPhotoWall;     private PhotoWallAdapter mAdapter;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         s…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录XposedXposed 是什么背景介绍Xposed 的原理官方简介最新版本支持到 8.1(27)第一个 xposed 项目模拟器系统环境配置实体机系统环境配置引用 API配置 meta-data需求分析编写 Xposed 代码为什么不能用 Class.forName 方法配置完…
目录 IO 流 简介 关闭流的正确方式 关闭流的封装方法 InputStream 转 String 的方式 转换流 InputStreamReader OutputStreamWriter 测试代码 文件读写流 File-Stream FileInputStream FileOutputStream FileReader(转换流) FileWriter(转换流) 测试代码 字节数组读写流 ByteArray-Stream ByteArrayInputStream ByteArrayOutputS…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 异常捕获 崩溃 Bugly ACRC 简介 总结 目录 目录腾讯 Bugly介绍最简单的接入配置高级功能上传开发者catch的异常js 的异常捕获功能配置用户策略 UserStrategy设置 Crash 回调使用 MultiDex 的注意事项上报进程控制其他设置设置自定义标签设置自定义M…
DiskLruCache是谷歌推荐的用来实现硬盘缓存的类,本案例将对DiskLruCache的基本用法做一个总结,包括:创建缓存.查找使用缓存.移除缓存等等. 实现效果图 创建DiskLruCache DiskLruCache使用open方法创建一个实例,例如以下所看到的:相应的四个參数分别为:缓存文件夹.应用版本.单个key相应的数据的个数(一般设为1).缓存的总大小,当中key是图片的url经过MD5转码获得的,防止url带有特殊符号影响缓存的正常使用. try { File cacheDi…
在用户界面(UI)加载一张图片时很简单,然而,如果你需要加载多张较大的图像,事情就会变得更加复杂,.在许多情况下(如与像的ListView GridView或ViewPager的组件),屏幕上的图片的总数伴随屏幕上滚动的骤然增加,且基本上是无限的.为使内存使用保持在稳定范围内,这些组件会在子view在屏幕中消失后,对其进行资源回收,垃圾回收机制会释放掉已加载的图片内存空间,所以建议你不要保持图片的常引用,这样做很好,为了保证页面的流畅性和响应速度,你可能不愿意在页面返回时频繁处理加载过图片.通过…
做android应用少不了要和网络打交道,在我刚开始学android的时候总是处理不好网络图片的加载,尤其是图片乱跳的问题,后来发现了各种缓存图片的方法:本地缓存.软引用.LruCache.... 我知道的这三种方法中,第一中和其他两种并不冲突,我们完全可以缓存到本地一份,在缓存到内存中一份.软引用这样方式,第一次使用软引用的时候,感觉做一个完美的内存缓存太容易了,可惜在android2.3以后android加强了对软引用的回收,这种方式基本上算是废了.   LruCache登场 软引用废了,难…
一.   什么是Memcached Memcached 是一个高性能的分布式内存 对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象 来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度. 相信很多人都用过缓存,在 .net 中也有内置的缓存机制,还有很多第三方工具如apache,nginx等可以做静态资源的缓存,同时我们也可 以制定自己的缓存机制,缓存数据库查询的数据以减少对数据库的频繁操作.但是很多时候我们总是感觉这些缓存总不尽人意, Memcached可以…
一.Android中的缓存策略 一般来说,缓存策略主要包含缓存的添加.获取和删除这三类操作.如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的.当缓存满了之后,再想其添加缓存,这个时候就需要删除一些旧的缓存并添加新的缓存. 因此LRU(Least Recently Used)缓存算法便应运而生,LRU是近期最少使用的算法,它的核心思想是当缓存满时,会优先淘汰那些近期最少使用的缓存对象.采用LRU算法的缓存有两种:LrhCach…
简介 Android普通窗口的视图绘制机制是一层一层的,任何一个子元素或者是局部的刷新都会导致整个视图结构全部重绘一次,因此效率相对较低.视频或者opengl内容往往是显示在SurfaceView中的,SurfaceView的工作方式是:创建一个置于应用窗口之后的新窗口.因为SurfaceView窗口刷新的时候不需要重绘应用程序的窗口,所以这种方式的效率非常高. 但是SurfaceView也有一些非常不便的限制,因为SurfaceView的内容不在应用窗口上,所以不能使用平移.缩放.旋转等变换操…
Git 使用准备 主流的 Git 托管网站 GitLab,主流网站,私有仓库也完全免费,功能更强大,页面精美,操作方便 GitHub,最著名的免费Git托管网站,缺点是免费的不支持私有项目 OSChina,开源中国代码托管,支持公有项目和私有项目,成员无限,项目1000个 CSDN ,支持公有项目和私有项目,提供2G存储空间 Bitbucket,Bitbucket是国外一个比较著名的Git托管网站,免费用户支持公有和私有项目 Git 的安装 Git 下载1 Git 下载2 国内镜像 Git是什么…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录常用案例判断是今天还是明天计算两个日期间相差几天增加或减少一定的时间判断缓存是否过期获取一个时间,要求当月有31天SimpleDateFormat 格式化 Date 示例Calendar 和 Date 的妙用Calendar 基本操作示例TimeZone中可获取到的有用信息Loc…