Android Bitmap像素排列与JNI操作

2020-08-23
阅读 28 分钟
3.8k
RGB颜色模型即红绿蓝颜色模型。由模仿生物视网膜三种视锥细胞产生,之后通过三原色叠加来进行彩色图像显示。通过在黑色上不断叠加三原色来显示不同的颜色。在RGB颜色空间中,分别将RGB作为笛卡尔坐标系中XYZ坐标系产生。每一个颜色取值范围为[0,256)

JNI的一些基础

2020-08-09
阅读 33 分钟
4k
这是一个简单的计算 a+b 的 native 方法,在 C++ 层接收来自 kotlin 方法的参数,并转换成 C++ 层的数据类型,计算之后再返回成 应用层的数据类型。

Dagger Hilt 初探

2020-07-07
阅读 16 分钟
4.6k
To create a standard set of components and scopes to ease setup, readability/understanding, and code sharing between apps.

kapt要淘汰了?注解处理新姿势 ksp来临

2020-06-19
阅读 12 分钟
5.2k
Kotlin Symbol Processing (KSP) is an API that you can use to develop lightweight compiler plugins. KSP provides a simplified compiler plugin API that leverages the power of Kotlin while keeping the learning curve at a minimum. KSP is designed to hide compiler changes, minimizing maintenance effor...

ViewBinding与Kotlin委托

2020-06-03
阅读 9 分钟
2.9k
接上篇 自定义属性委托的用处很多,例如组合替代继承,给个ViewBinding在Fragment中的使用的例子: 委托: {代码...} 使用: {代码...} 注意添加依赖: {代码...} 那我们这里同样利用自定义属性委托让ViewHolder可以存储和检索任何类型的任何属性 by Map委托 {代码...} 避免重名 {代码...} 给ViewPage2的Adapter写个简单it...

Android 注解处理器中的MirroredTypeException异常处理

2020-05-11
阅读 3 分钟
2k
在AOP开发中我们经常通过Element的getAnnotation(Class<A> var1)方法去获取自定义注解中的传入的属性

N叉树的序列化与反序列化

2020-04-20
阅读 3 分钟
3.7k
我们这里就直说N叉树了,其每个节点最多拥有N个子节点。序列化/反序列化算法的工作方式没有任何限制。我们只需要确保将N元树可以序列化为字符串,并且可以将该字符串反序列化为原始树结构即可。

ViewBinding与RecycleView(一)

2020-04-17
阅读 7 分钟
3.4k
如何使用 在Android Studio 3.6的稳定版本中,我们就可以使用ViewBinding替代findViewById 官方介绍 另外关于ViewBinding 与Kotlin Android Extensions 的区分这里不多做介绍,可以参考下stackoverflow中的讨论 ViewBinding如何使用?如果是Kotlin DSL的话这样添加: {代码...} 否则: {代码...} 简单例子 {代码...} 然...

Android设计模式-责任链

2020-02-21
阅读 5 分钟
1.3k
责任链模式是一种对象的行为模式。通过建立一条链来组织请求的处理者,请求将沿着链进行传递,请求发送者无须知道请求在何时、何处以及如何被处理,实现了请求发送者与处理者的解耦。

Android Jetpack Compose - Button

2020-02-11
阅读 3 分钟
2.9k
简单示例 {代码...} 例如: {代码...} 或者传入可组合children来代替text属性 {代码...} 例如: {代码...} 按钮样式 ContainedButtonStyle 默认样式 TextButtonStyle 文本样式 OutlinedButtonStyle 轮廓样式 @Composablefun btLayout() { {代码...} }

Android设计模式(四) 策略模式

2020-02-10
阅读 4 分钟
1.3k
原则:抽取代码中变化的部分来实现一个接口,并提供多种实现类,即算法。调用方需要使用这个接口的时候,可以动态的选择这些实现类。算法的变化独立于使用算法的调用者,从而可以轻松的扩展与改变策略,实现对象的动态改变行为,符合OCP原则

Android Jetpack Compose 之 Text

2020-02-10
阅读 4 分钟
3.2k
官方教程 下载Android Studio Canary版本 环境 添加依赖: {代码...} androidx.ui.core中的Composable Text组件为我们提供了一系列的属性来控制文本的外观。 {代码...} 基本属性 softWrap 声明是否应在换行符处断开文本 overflow 组件中溢出文本 省略号 淡入淡出 {代码...} 文本样式 在定义文本组件的样式属性时,我们需...

Android设计模式(三) 观察者模式

2020-01-17
阅读 4 分钟
2.7k
Android开发中的基于观察者模式实现的设计还是很多的,比如rxjava、LiveData...常见的按钮点击事件 Button ---> 被观察者 OnClickListener ---> 观察者 setOnClickListener() ---> 订阅 OnClick() ---> 事件 观察者模式定义可一对多的依赖关系,让多个观察者同时监听某一个对象,当这个主体对象在状态上发生...

Android设计模式(二) 建造者模式

2020-01-14
阅读 5 分钟
3.2k
不管是之前提到的工厂模式还是单例,都没解决扩展大量可选参数的问题,例如上述我们在购买MacBook的时候都会进行可选产品定制,例如屏幕尺寸,处理器种类 ,内存大小,硬盘大小 ,Applecare,铭刻内容,配件...等等等

Android设计模式(一) 工厂模式

2020-01-13
阅读 8 分钟
2.3k
用object类替代频繁的FoxconnFactory()对象创建,用operator操作符重载invoke()来替代fun product()方法:

Kotlin如何安全访问lateinit变量

2020-01-07
阅读 1 分钟
5.9k
Kotlin设计之初就是不允许非null变量在声明期间不进行初始化的,为了解决这个问题,Kotlin lateinit 允许我们先声明一个变量,然后在程序执行周期的将来某个时候将其初始化,让编译检查时不会 因为属性变量未被初始化而报错。如果未初始化将导致以下异常:

kotlin中的reified关键字

2019-11-22
阅读 5 分钟
4.4k
说kotlin中这个关键字之前先简单说下Java中的泛型,我们在编程中,出于复用和高效的目的,经常使用泛型。泛型是通过在JVM底层采取类型擦除的机制实现的,Kotlin也是这样。

Android之使用Kotlin构建Gradle

2019-07-19
阅读 5 分钟
4k
Android Studio Gradle 3.4.2 5.1.1 首先kotlin-dsl不是什么新鲜的东西了,Gradle5.0发布的时候就有了Gradle Kotlin DSL目前的版本是1.0.2 现在是否可以抛弃groovy拥抱kotlin了呢,~~迁移还是有点小麻烦的! 目前在Android Studio中创建项目时,默认情况下使用Groovy创建Gradle脚本,那如何向kotlin-dsl迁移呢? 语法替...

Android之全新UI构建Jetpack Compose

2019-05-19
阅读 1 分钟
4.1k
之前不久的Google I/O 2019大会上宣布Kotlin成为Android 开发首选语言,Jetpack的API和功能也将在Kotlin中提供,并且Google在当天开源了Jetpack Compose

Mac下用cmake编译 Android用libjpeg-turbo

2019-01-15
阅读 2 分钟
4.1k
终于有时间写博客了,en~~~~之前做电商项目,遇到项目中大量的图片质量处理问题,跳过官方的skia)直接利用libjpeg-turbo处理图片 先说下编译静态库与动态库后面有时间再写下如何利用libjpeg-turbo进行图片质量处理的专题 1.编译环境 os cmake ndk macOS Mojave 10.14.2 3.10.2.4988404 android-ndk-r16b 2.编译脚本 按照...