- 博客(289)
- 资源 (10)
- 收藏
- 关注
原创 Kotlin进阶之协程从上车到起飞
Kotlin协程的高级教程,详细且深入的学习Kotlin协程的创建,运行,取消和异常处理,以期能完全理解协程并正确的使用协程。
2024-03-18 22:40:42 617
原创 深入浅出Java泛型
深入浅出的讲解Java泛型系统,从基础的使用方法到核心概念再到高级用法,最后总结一下Java泛型系统的遗留问题以及使用的最佳实践。
2024-03-12 20:43:57 777
原创 这回就好好聊聊Kotlin的泛型
学习Kotlin对泛型的支持,从最基础的泛型参数化类型和参数化函数,到关键字out和关键字in进行协变和逆变,再到用关键字reified保留泛型参数以实现泛型工厂。
2024-03-05 21:54:18 351
原创 一文带你吃透Kotlin类与对象
总结并整理Kotlin语言中的面向对象编程的高级特性,包括延迟初始化,函数式接口,匿名对象,纯数据类型,密封类和接口以及类型别名。
2024-02-27 22:18:27 948
原创 专家之路上的Flow高级秘籍
深入的学习Kotlin Flow API的高级特性,如上下文,背压和热流。以能够彻底理解Flow,并掌握Flow的高级用法。
2024-02-20 20:51:07 847 2
原创 让你从此不再惧怕ANR
是安卓系统的核心基础通信机制,组件件间的通信,Intent,ContentResolver,应用与AMS,PMS和WMS等等之间的交互都是通过binder call来进行的,常规情况下大部分时候binder call都没有问题会很快问题,但如果binder另一头的某个服务发生了问题,即使是瞬时问题,也会导致binder call被阻塞或者变慢,这时就可能引发应用侧的ANR。调试的手段也都是从代码执行的角度,把线程的栈帧转储出来(stack trace dump),以查看是被哪 个函数阻塞了。
2023-12-11 20:51:33 88
原创 实战技巧:为Android应用设置独立的多语言
但如果系统也支持应用语言选择入口的话,那么通过系统入口也是可能会修改应用的多语文选项的,这时,就需要把系统的选项与应用内部的选项进行同步。通常情况下多语言的设置都在系统设置中,应用需要做的就是提供本应用所使用的字串的多语言翻译,使用时使用R.string.app_name类似的引用,然后系统会根据用户在系统设置中的选项来选择合适的具体的语言。来获取当前生效的语言选项,它是由appcompat库来维护的,肯定是最新的,所以应用自己保存的选项如果与这个API的结果不一致,就要重置为这个API的结果。
2023-12-04 22:39:38 272
原创 Kotlin学习之集合
但有时如果仅仅想重复一件事情n次,那就没有必要用Ranges,虽然它也可以,这时最为方便的是函数repeat,它与区间的唯一区别是repeat是没有返回值的,它仅是把一件事情重复n次,但没有返回值也就是说没有办法再转化为其他数组或者列表。Ranges是一个数据结构代表着一个区间,这个区间可能是一个整数范围,也可能是一个字符范围,其实也可以是其他自定义数据类型,只要能表达 出区间的概念。以外,还有对象的容器也非常的重要,比如线性容器(数组,列表和Set)和二维容器(哈希表)等。
2023-11-27 21:52:43 411 1
原创 Java中整数基础知识
开篇时说了,当时错误的认为0xFFFFFFFF是最小的整数,这里犯的第一个严重错误是,误把二进制的补码当成了原码,代码中的16进制(二进制)都是补码形式的,它的原码是0x80000001即-1。所以,你写的0xFFFFFFFF是补码形式,它的原码是减1再取反,(32个1)减1,最低位变成0,前面31个1,再取反,就只剩下最后一位是1和最高位的符号位,因此是-1,注意符号位是不变的,在转换过程中。简单来说,补码是一种二进制编码形式,正数的补码就是它的本身,而负数的补码是其取反后加1,可以。
2023-10-23 21:13:44 161
原创 学习Kotlin,看这一篇就够了
人生苦短,要用Kotlin这是一种对程序猿更为友好的语言,可以减少开发者的工作量,原本由开发者干的事情,其实很多都可以由编译器实现了,这是一种更为高级的语言。Java虽然严谨,但却过于繁琐,太啰嗦了,一个小事情却要写大量的代码,而且有些代码又是非常机械式的,在实际编码过程中都是用IDE来自动生成。Java,C,C++,Object C这些都是上世纪的编程语言。点击阅读全文...
2018-05-20 13:02:50 1157
原创 为猿七年有余,痒否?痛否?
还未有感,已然岁末,犹叹时之箭逝去如斯也,稍纵命再减一。回首望,为猿七年有余已,虽不成气候,亦未全蹉跎。略做小结,以不惘逝去之时日,亦会大益于尔后路途。若博文能助足下之一二,孤将甚悦。
2017-01-05 09:34:15 14548 52
原创 说说Android的MVP模式
安卓应用开发是一个看似容易,实则很难的一门苦活儿。上手容易,看几天Java,看看四大组件咋用,就能整出个不太难看的页面来。但是想要做好,却是很难。系统框架和系统组件封装了很多东西,开发者弄几个Activity,用LinearLayout把布局组合在一起,添加点事件监听,一个应用就成型了。红海竞争,不管多么复杂的UX和业务逻辑都是一个月快速上线,二周一个迭代,领导和产品早上改需求,晚上改设计,再加上
2016-02-11 12:47:21 5520 8
原创 Android技巧:学习使用GridLayout
GridLayout是一个非常强大的网格类布局,它不但能像TableLayout那样,实现网格类布局,但它更为强大的地方在于每个Cell的大小可以横向或者纵向拉伸,每个Cell的对齐方式也有很多种,而且不像TableLayout,需要一个TableRow,GridLayout可以通过指定Cell的坐标位置就能实现Cell的拉伸,从而实现,大小不一致的风格卡片式布局。基本概念
2015-12-14 16:52:50 2985
The Artist’s Guide to GIMP, 2nd Edition
2012-10-20
Android本地代码生成器
2011-10-19
Android本地代码生成器
2011-10-19
Learning Vi and Vim editor
2009-05-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人