常见的移动端CPU架构
常见的移动端CPU架构麒麟芯片回归!具有高性能、低功耗的特点,在手机CPU性能天梯图中名列前茅。本篇简要记录手机CPU相关的知识,这对开发Android应用程序适配各机型有一定的帮助。不同的Android厂商或设备通常会使用不同的 CPU,而不同的CPU支持的指令集也各不相同:AIB支持的指令集说明armeabi-v7aarmeabiThumb-2VFPv3-D16与 ARMv5/v6 设备不兼容
加入于 2019-10-06
不忘初心的阿甘
598
文章
41
评论
常见的移动端CPU架构麒麟芯片回归!具有高性能、低功耗的特点,在手机CPU性能天梯图中名列前茅。本篇简要记录手机CPU相关的知识,这对开发Android应用程序适配各机型有一定的帮助。不同的Android厂商或设备通常会使用不同的 CPU,而不同的CPU支持的指令集也各不相同:AIB支持的指令集说明armeabi-v7aarmeabiThumb-2VFPv3-D16与 ARMv5/v6 设备不兼容

Upscayl:开源免费的 AI 图像处理工具最近AI火爆,在GitHub上发现一个强大的AI图像处理工具:upscayl,并且已经开源:github/upscayl/upscayl。轻松让图像放大变清晰,用来处理一些场景的图片清晰效果还是不错的。upscayl提供了离线的版本,兼容各种操作系统:包括 MacOS、Linux 和 Windows。不需要魔法,直接下载下来安装即可:安装好之后直接运行
Otto中的生产者和消费者前面在Otto小巧的事件总线一文中了解了Otto事件总线这个库。本篇详细介绍一下Otto中生产者和消费者的实现,Otto中有两个注解:@Subscribe和@Produce。@Subscribe注解大家比较熟悉,在EventBus中也有同名的注解,在订阅者类中定义接收事件的方法。而另一个注解不常用:@Produce。用来定义生产者中发送事件的方法,当生产者注册到Bus中会

Otto小巧的事件总线Otto,不是KSG的中单,是Square在2015年发布的事件总线通信库,作者是大名鼎鼎的JakeWharton。代码行数550行(注释420行)只有EventBus的1/3,经过多年的打磨已于2019年封存不再维护。它仍然值得开发者学习。Otto是一个事件总线,用于应用程序的不同组件之间进行有效的通信,用来降低程序之间的耦合性。Bus构造没有使用建造者模式,直接使用Bus
Android特有的数据结构:SparseArraySparseArray ,稀疏数组,是Android中特有的数据结构,从Android 1.0就有,主要目的是为了节省内存。SparseArray 的实现简洁,源码仅500余行,值得学习。1、SparseArray数据存储方式java中的HashMap是采用数组+链表存储(java1.8以后,链表超过8个采用红黑树存储)。而SparseArray
ContentObserver内容观察者源码解析一定要看看ContentObserver源码内部是如何实现观察者模式观察ContentProvider内容的。用它来观察我们感兴趣的ContentProvider是很有用的(见ContentProvider笔记)。1、注册先从ContentResolver注册ContentObserver的registerContentObserver()方法开始:

No variants found for ':base'. Check build files to ensure at least one variant exists.从GitHub上clone新项目到本地,打开的时候经常会遇到各种错误,比如:之前也遇到过在别人电脑上可以正常开发调试,项目或代码clone到自己电脑上出问题。发生这种情况,一般都是和本地的配置有关:gradle配置、JDK配置
R8编译问题:Missing classes detected while running R8Android R8是一个代码混淆和压缩工具,可以将应用程序的大小和安全性优化。它引入了一些新功能,如成员内省、混淆指针、类内省等。但R8使用起来一直不友好,因为自从使用R8之后编译问题不断。主要还是和混淆相关,经常报错,最近又遇到一个:Missing classes detected while ru