- 博客(16)
- 收藏
- 关注
原创 Android Bitmap像素排列与JNI操作
图像的数值表示RGBRGB颜色模型即红绿蓝颜色模型。由模仿生物视网膜三种视锥细胞产生,之后通过三原色叠加来进行彩色图像显示。通过在黑色上不断叠加三原色来显示不同的颜色。在RGB颜色空间中,分别将RGB作为笛卡尔坐标系中XYZ坐标系产生。每一个颜色取值范围为[0,256)RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。红、绿、蓝三个颜色通道每种色各分为256阶亮度,在0时“
2020-08-23 21:07:37 924 2
原创 Dagger Hilt 初探
介绍Dagger Hilt (这名字起的溜…)官方描述其设计目的:To simplify Dagger-related infrastructure for Android apps.To create a standard set of components and scopes to ease setup, readability/understanding, and code sharing between apps.To provide an easy way to provision
2020-07-09 15:39:16 1575
原创 ViewBinding与Kotlin委托
接上篇幅自定义属性委托的用处很多,例如组合替代继承,给个ViewBinding在Fragment中的使用的例子:委托:/** * 自定义属性委托。 * * <p>......。</p> * <ul><li></li></ul> * <br> * <strong>Time</strong> 2020/5/18
2020-06-03 14:57:02 506
原创 Android 注解处理器中的MirroredTypeException异常处理
在AOP开发中我们经常通过Element的getAnnotation(Class<A> var1)方法去获取自定义注解中的传入的属性例如:@Target(AnnotationTarget.FIELD)@Retention(AnnotationRetention.SOURCE)@MustBeDocumentedannotation class TTEventType(val value: KClass<*>)当我们获取KClass<*>类型时会出现javax.
2020-05-11 18:11:51 1163
原创 Android设计模式-责任链
简述责任链模式是一种对象的行为模式。通过建立一条链来组织请求的处理者,请求将沿着链进行传递,请求发送者无须知道请求在何时、何处以及如何被处理,实现了请求发送者与处理者的解耦。如Android 中的事件传递,Activity->ViewGroup->View,当然也可以View->ViewGroup-> Activity ,android 中是U形事件传递另外OKhtt...
2020-02-21 14:58:33 168
原创 Android设计模式- 策略模式
策略模式用于算法的自由切换和扩展,分离算法的定义与实现。好处:将不同的行为策略(Strategy)进行独立封装,与类在逻辑上解耦,即可以动态改变对象的行为原则:抽取代码中变化的部分来实现一个接口,并提供多种实现类,即算法。调用方需要使用这个接口的时候,可以动态的选择这些实现类。算法的变化独立于使用算法的调用者,从而可以轻松的扩展与改变策略,实现对象的动态改变行为,符合OCP原则Andro...
2020-02-12 15:34:26 144
原创 Android Jetpack Compose - Button
简单示例@Composablefun Button( text: String, modifier: Modifier = Modifier.None, onClick: (() -> Unit)? = null, style: ButtonStyle = ContainedButtonStyle()) { Button(modifier = m...
2020-02-11 17:18:50 1263 1
原创 Android Jetpack Compose 之 Text
官方教程下载Android Studio Canary版本环境添加依赖: def compose_version = "0.1.0-dev03" kapt("androidx.compose:compose-compiler:$compose_version") implementation("androidx.compose:compose-runtime:$co...
2020-02-10 17:18:59 777
原创 Android设计模式(三) 观察者模式
Android开发中的基于观察者模式实现的设计还是很多的,比如rxjava、LiveData…常见的按钮点击事件Button —> 被观察者OnClickListener —> 观察者setOnClickListener() —> 订阅OnClick() —> 事件观察者模式定义可一对多的依赖关系,让多个观察者同时监听某一个对象,当这个主体对象在状态上发生变化...
2020-01-17 18:01:53 172
原创 Android设计模式(二) 建造者模式
建造者模式解决的就是将一个复杂对象的构建与它的表示分离,从而使对象的构建过程能有不同的表示。什么意思?fun main(args: Array<String>) { MacBook(15,8,16,512,true,"test","")}class MacBook(private var screenSize:Int, private var...
2020-01-14 19:13:56 193
原创 Android设计模式(一) 工厂模式
简单工厂模式核心作用就是为了通过工厂类隐藏对象的创建逻辑,避免暴露给调用方以富士康生产不同类型的Apple Ipad产品为例:fun main(args: Array<String>) { val ipadNeeded = FoxconnFactory().product(PadType.AIR) print(ipadNeeded.biometric)}in...
2020-01-13 16:38:42 237
原创 Kotlin如何安全访问lateinit变量
Kotlin设计之初就是不允许非null变量在声明期间不进行初始化的,为了解决这个问题,Kotlin lateinit 允许我们先声明一个变量,然后在程序执行周期的将来某个时候将其初始化,让编译检查时不会 因为属性变量未被初始化而报错。如果未初始化将导致以下异常:kotlin.UninitializedPropertyAccessException: lateinit property mLis...
2020-01-09 13:53:08 1479
原创 kotlin中的reified关键字
说kotlin中这个关键字之前先简单说下Java中的泛型,我们在编程中,出于复用和高效的目的,经常使用泛型。泛型是通过在JVM底层采取类型擦除的机制实现的,Kotlin也是这样。泛型泛型是 Java SE 1.5 中的才有的特性,泛型的本质是参数化类型,可分为泛型类、泛型接口、泛型方法。在没有泛型的情况的下只能通过对Object 的引用来实现参数的任意化,带来的缺点就是要显式的强制类型转换,而...
2020-01-09 13:49:53 7445
原创 Android之使用Kotlin构建Gradle
Android StudioGradle3.4.25.1.1首先kotlin-dsl不是什么新鲜的东西了,Gradle5.0发布的时候就有了Gradle Kotlin DSL目前的版本是1.0.2现在是否可以抛弃groovy拥抱kotlin了呢,~~迁移还是有点小麻烦的!目前在Android Studio中创建项目时,默认情况下使用Groovy创建Gradle脚本...
2019-07-19 13:59:53 3115
原创 Android之全新的UI构建Jetpack Compose
之前不久的Google I/O 2019大会上宣布Kotlin成为Android 开发首选语言Jetpack API 和功能将在 Kotlin 中提供,并且Google在当天开源了Jetpack Compose官方说明AndroidX包含了Google最新的一系列组件,Jetpack Compose也在其中,还处于pre-alpha版本。因此无法用gradle依赖项,而是需要从源代码下载并安装...
2019-05-19 20:20:56 1233
原创 Mac下用cmake编译 Android用libjpeg-turbo
终于有时间写博客了,en~~~~~~~~~~~~之前做电商项目,遇到项目中大量的图片质量处理问题,跳过官方的skia直接利用libjpeg-turbo处理图片先说下编译静态库与动态库后面有时间再写下如何利用libjpeg-turbo进行图片质量处理的专题##1.编译环境oscmakendkmacOS Mojave 10.14.23.10.2.4988404and...
2019-01-14 16:03:24 776 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人