自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 没有比这更新鲜的注解教程了 AS3.4 Gradle5

网上有很多 APT 相关教程,最近开始学这个,发现有一些内容已经过时了,在使用过程中也发现了一些坑,总结一下,形成这篇教程。本文开发环境:2019年5月初最新版本的 Android Studio 3.4、Android Plugin 3.4.0、Gradle 5.1.1。本教程需要读者了解注解 Annotation 的基本知识,不涉及 Annotation 运行时反射的用法,专注于自定义 A...

2019-09-09 09:25:50 313

原创 ButterKnife 写给一知半解的同学

ButterKnife GitHub 2019 年已经更新到 10.1.0 版本了,经过几天的学习和网上搜索资料,发现之前版本的一些疑难杂症已经不存在或者有些改善。刚开始用是非常爽的,如果真的要应用在项目中,有如下建议:一个 module 撸到底的项目,直接用吧,没啥坑,都挺好。大项目组件化的项目,可以尝试。低版本据搜索有很多坑,我在 10.1.0 版本实验了一下,配置得当没有问题。但我这...

2019-09-09 09:23:57 158

原创 DiskLruCache 文件缓存

什么是 DiskLruCache是文件缓存的管理对象,使用 LRU 算法对保存在永久存储设备上的缓存文件进行管理。比手机的闪存更低速的访问设备是网络,文件缓存的意义就在于通过重复利用缓存的数据,减少网络请求,减少网络流量,提高响应速度。用法使用静态方法 static DiskLruCache open(File directory, int appVersion, int valueCo...

2019-09-09 09:11:57 1347

原创 LruCache 内存缓存

什么是 LruCache是一种内存缓存对象,使用 LRU(Least Recent Used)算法管理缓存。缓存是空间换时间的一种策略,将低速设备上的数据保存一部分到高速设备上,从而提高整个系统长期运行时的平均读取速度。通常高速设备的空间较小,低速设备的空间较大,也就是说缓存的空间总是不可能覆盖数据全集,需要有缓存数据交换的策略。而缓存算法实现的就是缓存如何交换的细节。LRU 算法,Leas...

2019-09-06 17:43:00 500

原创 IntentService 介绍和源码分析

IntentService 是系统提供的一种 Service,它用 Intent 传递数据,用子线程执行代码。使用时需要继承 IntentService,自定义 Intent 中携带的数据格式以及对应的执行代码,外部调用时需要按照格式定义 Intent 数据并启动服务。什么时候用Service 作为四大组件之一,用来实现与 UI 无关的功能,但 Service 各个生命周期的方法仍然运行在 U...

2019-09-06 15:52:16 165

原创 Unity 与 Android 互调用

Unity 项目中一些需要访问安卓操作系统的功能,比如获取电量,wifi 状态等,需要 Unity 启动安卓系统的 BroadcastReceiver 监听状态,并在状态更新后通知到 Unity 界面。这就需要一种 Unity 与 Android 互相调用的机制,直观地看就是 C# 与 Java 互相调用的方法。有 Unity 与 Android 互相调用需求的项目需要在两个开发环境中同时进行,...

2019-09-06 14:51:12 649

原创 javap 反编译探寻内部类为何能访问外部私有成员

Java语言理论告诉我们内部类对象持有外部类对象的一个引用,这说明内部类与外部类还是独立的两个类,只不过内部类对象通过持有外部类的对象的引用来维持这个关系。通常任何一个类都不可能访问另一个类的私有成员,那么内部类是如何做到访问外部类的私有成员的呢?其实“持有外部类对象的一个引用”这句话已经给了我们提示,Java代码中并不需要自己去声明这么一个引用,因此是编译器背着我们创建了这个引用。既然编译器...

2019-09-06 14:47:48 207 1

原创 iOS - UIButton 图文相对位置你写对了么

如果你使用文字按钮或者图片按钮,UIButton 不会给你找麻烦。如果你使用文字 + 图片组成的按钮,你就会意识到 UIButton 这货有多变态。UIButton 将图片放在左边,文字放在右边,这个规则是固定的,没有一个简单的设置项来安排图片和文字的相对位置。UIButton 中的文字和图片都可以通过属性访问:@property(nullable, nonatomic,readonly,...

2019-04-03 14:33:45 411

原创 找回被Xcode偷吃的SSD

不要给我说什么开题铺垫大纲总结,老夫写文章上来就是干货。且看使用 Xcode 开发 iOS 会有哪些目录占用大量空间。模拟器目录~/Library/Developer/CoreSimulator/Devices/用途:存放模拟器用户数据。占用空间中等(一个模拟器800M),如需再使用只需在 XCode 中重新创建即可。清理建议:按需清理,长时间不用的可以清理。清理方法:直接在 XCo...

2019-03-12 22:46:22 131

原创 iOS: 自定义引导气泡的 N 种实现方法

关键词:iOS、引导页、自定义View、气泡、AutoLayout、自动布局、OC、Objective-C、CALayer、CATextLayer、intrinsicContentSize在上一篇文章 iOS: 引导页 UIScrollView 自动布局(AutoLayout)详解中介绍了一个开屏引导页的实现,还有一种引导也很常用,就是浮动气泡引导。说白了就是在进入应用界面后为了防止用户一脸懵...

2019-01-20 15:57:58 1621

原创 iOS: 引导页 UIScrollView 自动布局(AutoLayout)详解

开屏引导页是app常用的一种引导页,即第一次打开app后显示给用户的几个左右滑动的页面,用来提醒用户这个版本有什么新东西。由于 UIScrollView 和 UIPageControl 配合能完美的实现引导页的功能,因此这个任务并不算太难。PS:这个功能是 OC 写的,换成 swift 也很容易。需求第一次打开app的时候显示,显示过之后再次打开就不再显示了。更新引导页,更新第二版或者...

2019-01-07 09:43:28 2798 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除