- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 Kotlin学习-集合和序列(3)
前面两篇我们学习了 Kotlin 学习-基础语法(1)和Kotlin学习-函数的定义和调用(2)这次来看下kotlin中的集合和序列。1.集合1.1 集合的写法首先我们来看下kotlin中集合的几种写法,如下:private fun testList() { val list1 = listOf(1, 2, 3) val list2 = mutableListOf(4, 5, 6) println("list1 = $list1") println("list2
2021-09-05 14:03:55
412
原创 android app图标长按展示快捷方式 Shortcuts 类似3d touch
android 长按图标展示快捷方式首先,这不是一个新功能了,在android 7.1的时候就已经支持创建快捷入口了。因为当时项目用不到也没关注过这块,现在很多应用都支持长按展示快捷入口了,确实有必要对这块了解下了。1. 静态创建静态创建比较适合常用的快捷方式不怎么变的情况。在AndroidManifest.xml 清单文件中找到应用程序的入口,也就是 intent 过滤器设置为 android.intent.action.MAIN 操作和 android.intent.category.LAUN
2021-08-08 13:39:11
2392
原创 RxJava原理分析
文章目录RxJava 的核心思想的理解?订阅流程1. Observer 源码2. Observable 创建过程3. subscribe 订阅过程4. 操作符 - map线程切换1. subscribeOn2. observeOn总结订阅流程线程切换RxJava 的核心思想的理解? 有一个起点和一个终点,起点开始流向我们的“事件”,把事件流向终点,只不过在流的过程中可以增加拦截,对“事件”进行改变,终点只关心它的上一个流程。RxJava的核心:订阅流程、线程切换。源码基于 io.reactiv
2021-04-25 22:38:17
2313
原创 android面试题相关
文章目录1. Dalvik 和 ART 的区别?2. Bitmap 优化?3. Bundle 用来传递数据,为什么不用 HashMap取代?4. 广播和EventBus的区别?5. 什么是 SurfaceView?6. 什么是Activity,Window,view?1. Dalvik 和 ART 的区别?Dalvik 每次运行都需要把字节码即时编译成机器码(JIT);ART 会在安装时把字节码预编译成机器码,使其成为真正的本地应用。ART 占用空间比Dalvik 大,大约(10%~20%),用空间
2021-04-20 00:47:33
309
原创 Android 注解和反射实践
Android 注解和反射实践上篇说了 Java 自定义注解,这里来看下自定义注解和反射结合的实践例子这里我们需要做到两点:A页面intent传递数据并跳转到B 页面,通过注解和反射实现数据的自动赋值通过注解和反射实现Activity页面的findViewById()功能和onClick()功能数据自动赋值首先来看下我们需要达到的效果:public class SecondActivity extends AppCompatActivity { @GetParam(value =
2021-04-13 19:13:59
324
原创 Glide缓存机制
文章目录缓存机制加载流程LRU 机制总结上一篇文章介绍了Glide的源码解析 的主线流程,这里说下Glide的缓存机制。缓存机制加载流程Glide 的缓存层级包括:活动缓存:存放所有正在访问的图片。内存缓存(LRU)、磁盘缓存(LRU)、模型model(网络,io)。Glide的整体缓存流程如下:页面加载图片时,先去活动缓存获取。如果有直接加载;如果活动缓存没有,则从内存缓存获取。如果有,则把内存缓存中的图片拿到活动缓存,然后再去加载;如果内存缓存没有,则去磁盘缓存中获取。如果有,则
2021-04-13 00:12:56
221
原创 Glide源码解析
Glide 源码解析文章目录Glide 源码解析Glide流程简化图问题withLoadinto总结当源码量大难懂的时候,看源码的思路:只管主线,不管支线,不管支线,不管支线!重点在主线,稍微瞄一眼支线。稍微分析支线,回顾主线。分析支线细节,回顾主线。分析支线细节,寻找答案。Glide.with(this).load(url).into(imageView).with 创建一个空白的Fragment,来管理生命周期。load 创建一个RequestBuilder对象
2021-04-11 20:51:21
383
原创 Java自定义注解
文章目录自定义注解元注解@Target@Retention@Documented@Inherited自定义注解使用在开发中一些第三方框架经常会使用一些注解来实现功能,项目中也经常会使用到一些注解需要自己去自定义。一般情况下自定义注解会与反射或者动态代理结合使用,这里先整理一下注解相关的东西。自定义注解首先先看下一个常规的自定义注解长什么样子:@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RU
2021-04-09 10:34:34
225
原创 Java 泛型
文章目录泛型类和泛型方法限定符1. <? extends T>2. <? super T>总结泛型类和泛型方法首先看下Java的正常的泛型的类和泛型方法的写法:/** * 泛型类 */class Generic<T> { private T data; /** * 返回值是泛型的普通方法 */ public T getData() { return data; } /**
2021-04-07 15:33:22
132
原创 Kotlin学习-函数的定义和调用(2)
文章目录1. 函数默认参数值2. 顶层函数和属性2.1 顶层函数2.2 顶层属性3. 扩展函数和属性3.1 扩展函数3.2 扩展属性4. 局部函数上篇我们学习了 Kotlin 学习-基础语法(1)现在来看下kotlin的函数定义和调用又怎样的区别。1. 函数默认参数值在Java中普遍存在的一个问题就是,一些类的重载函数太多,尤其是参数多的时候。而在kotlin中可以在声明函数的时候指定默认参数值,这样可以避免创建重载的函数。如下面的例子:fun getString(a: String, b:
2021-03-29 15:31:07
267
原创 Android 10 触控条出现大白条的问题
从 Android 10(API 级别 29)开始,Android 系统支持完全基于手势的导航。为确保应用与此功能兼容,应用开发者应完成以下两项任务:将应用内容扩展到屏幕边缘。处理存在冲突的应用手势。例如小米8手机上,屏幕的的下方会出现触控条独占一个空间,你设置的全屏页面无法覆盖到触控条区域,为了能够将视图放置到屏幕边缘,应用必须告知系统它可以处理此类视图。为此,可以使用 View.setSystemUiVisibility() 来设置以下标记:SYSTEM_UI_FLAG_LAYOUT_ST
2021-03-26 18:57:34
1339
原创 Kotlin 学习-基础语法(1)
为什么要用kotlin首先,看看Android开发者中心的回答:富有表现力且简洁:您可以使用更少的代码实现更多的功能。表达自己的想法,少编写样板代码。在使用 Kotlin 的专业开发者中,有 67% 的人反映其工作效率有所提高。更安全的代码:Kotlin 有许多语言功能,可帮助您避免 null 指针异常等常见编程错误。包含 Kotlin 代码的 Android 应用发生崩溃的可能性降低了 20%。可互操作:您可以在 Kotlin 代码中调用 Java 代码,或者在 Java 代码中调用 Kotl
2021-03-26 17:50:44
425
原创 Android两个app间跳转-deepLink的使用
在开发过程中,经常会遇到两个app之间跳转、或者浏览器链接跳转app的需求,这里简单总结一下。1.简单的从一个app跳转到另一个app直接用intent就可以实现。只要知道目标activity的包名和类名就可以直接跳转了。/** * 方法1:intent的显式跳转 */ private fun jumpDemo2() { val intent = Intent() intent.component = ComponentName("c.
2020-09-12 23:36:35
4389
原创 Android开发使用Gradle实现多渠道打包
上篇文章《Android 如何使用gradle.properties》记录了如何使用gradle.properties实现与build.gradle之间的配置与交互。这篇文章来看下如何用build.gradle实现多渠道打包。我们知道打包的流程包括:签名配置、渠道配置、构建几个方面。通常App发布的时候会根据产品以及运营的需求对每个应用商店的渠道进行区分,需要打无数个包,那岂不是疯了?那...
2019-07-12 23:41:25
1510
原创 Android 如何使用gradle.properties
build.gradle使用gradle.properties配置相关信息首先build.gradle有哪些常见的参数可以应用到gradle.properties呢?以最常见举例:applicationId,versionCode,versionName在gradle.properties中代码APPLICATION_ID=com.example.multiVERSION_CODE=...
2019-07-11 10:17:34
2566
原创 PopupWindow常见问题
popup点击外部或返回键取消 //popupwindow点击外部和返回键消失 mPopup.setFocusable(true);//如果没有这句返回键后窗体泄露 ColorDrawable dw = new ColorDrawable(0x00000000); mPopup.setBackgroundDrawable(dw); mPopup.setOutsideTouchabl
2016-07-04 17:17:21
620
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人