BugMaker

Create bugs to solve problems

写一个MVVM快速开发框架(一)基础类封装

前言 最近想要将老项目用MVVM模式去重构,原来的App采用MVP+MVVM的混合模式,老项目嘛大家都懂,最开始用MVP,后来慢慢改成MVVM,但是又没完全重构,所以整个项目看起来乱糟糟的,每次新加功能的时候写的那叫一个难受。 工欲善其事必先利其器 用MVVM+Jetpack组件的优点就不用我说了,写过的人肯定都说爽,此次就是想要重新整理下一些基础开发工具,封装一个自己用的顺手的MVVM模式......

聊一聊Android存储行为的变化

总所周知Android上的存储权限一直在更改,从Android增加file provider,到Android10增加分区存储,Google对于存储权限管理越来越严格。我们聊一下Android上的存储Api兼容性适配。 1. 应用存储空间 应用保存数据的方式有如下: 文件和媒体数据可以保存在“应用专属存储空间”和“公共存储空间之中” 短数据或者偏好设置可以通过sharePreferenc......

聊一聊Kotlin中的线程安全

以上代码已上传Github,球球老哥们的Star 前言 在实际开发中有许多地方需要保证线程安全,保证互斥性。加锁是一个很好的实现方式,在kotlin中有哪些方式可以实现线程安全的效果? 为什么需要处理线程安全问题 线程安全问题由全局变量和静态变量引起,多个线程同时对统同一对象进行写操作,就可能发生每个线程读取到的值不一样。简而言之,如果在线程中不对变量进行写操作,值进行读操作,就可以避免线程......

Android自定义不规则裁剪

需求:实现一个不规则裁剪View,以前的实现方式不太优雅,和布局嵌套在一起耦合性太高,所以想将裁剪框和图片封装在一个View中。 实现效果如下 直接将代码,不多BB 具体请看Git demo,欢迎Star,fork package com.xlu.cropimage;import android.content.Context;import android.content.res.......

Android网络部分笔记

1.TCP/IP说一下 TCP/IP是网络协议的总称,包括了TCP\UDP\IP\HTTP\FTP等协议,大概可以分为4层:链路层,网络层,链路层,网络应用层,TCP\UDP都是传输层中的协议。 TCP全称传输控制协议,传输形式为数据流,是面向连接的协议,也就是说必须与 对方建立连接才能(参考TCP三次握手四次挥手) UDP是用户数据报协议,传输形式为数据报,是不面向连接的。 2.HTT......

Mac下编译LibjpegTurbo

Mac平台编译Libjpegturbo的优势 我尝试过在windows,linux(Ubuntu),mac下用不同的方式来编译,最后实际测试,在mac平台下,用cmake(非AS自带)编译性能是最好的。 1.Debug与Release版本区别: debug主要用于测试,release主要用于正式版本。按道理是一样的,但是在实际测试过程中发现,debug版本性能非常差劲,在Android上的表......

Windows平台下编译LibjpegTurbo的静态库.a文件和动态库.so文件

LibjpegTurbo 既然你看到这篇文章了,大概了解了LibjpegTurbo的作用了。这里不做多的介绍,官方生成LibjpegTurbo速度能提升2-6倍,根据实际测试,Turbo版本确实有提升,但是1.5.x版本和2.0.x版本速度差距较大,我们选择最新的release版本libjpeg2.0 下载:https://sourceforge.net/projects/libjpeg-......

Windows平台编译libjpegturbo的lib文件

LibJpegTurbo: 简单介绍下LibjpegTurbo,LibjpegTurbo是Libjpeg是进化版本,而Android原生的图片压缩框架是基于libjpeg的。根据官方说,能达到libjpeg的2-6倍速度。 Git地址:https://github.com/libjpeg-turbo/libjpeg-turbo 库下载地址:https://sourceforge.net......

iOS将View以图片格式保存在系统相册

方法一: 如下代码: //将view转成图片并保存相册 @objc func saveBtnClick(){ let frame = view.frame UIGraphicsBeginImageContext(frame.size) view.layer.render(in: UIGraphicsGetCurrentContext(......

Replaykit2(iOS 11+)视频录制详解

前言 公司有个项目要用到Replaykit录屏, 无奈从Android转到学习IOS,正好扩展下自己,技多不压身嘛。 本篇是为了整理一下关于Replaykit的知识,网上关于Replaykit2的相关资料还是太少了。 Replaykit Replaykit有什么用? 第一代的IOS9版本只能通过API请求开始录制屏幕,得到用户许可才开始,结束录制后得到一个mp4文件,不能进行实时操作。 I......