- 博客(28)
- 收藏
- 关注
原创 跨平台技术选型及对比——主要考虑客户端Android/iOS
方案FlutterKotlin NativeC++Rust是否支持UI跨平台是否否否性能(C++为最高基准)809010095包体Android约增加4.0M+, iOS约增加10.8M+(瘦身后约7M+) How big is the Flutter engine 包体积分析 [咸鱼瘦身攻略](https://juejin.im/post...
2020-04-06 22:21:17 784
原创 ARouter基本使用与原理浅析
ARouter,A framework for assisting in the renovation of Android componentization (帮助 Android App 进行组件化改造的路由框架) —— 支持模块间的路由、通信、解耦官方中文介绍:https://github.com/alibaba/ARouter/blob/master/README_CN.md(中文比...
2019-03-16 15:52:33 12482
原创 Short.compare NoSuchMethodError
起因项目中需要对数据排序,故需要比较数据属性值的一些大小,而看到Short/Integer/Long/Boolean这些类中,有compare方法可以使用,于是用了起来。Crash4.3及以下系统版本,运行到Short.compare时,程序崩溃,堆栈如下:java.lang.NoSuchMethodError: java.lang.Short.compareat com.rentee....
2019-03-15 11:07:04 5886
原创 List.subList方法导致的StackOverflowError
0x1.异常概览java.lang.StackOverflowErrorjava.util.AbstractList$SubAbstractList.listIterator(AbstractList.java:308)java.util.AbstractList$SubAbstractList.listIterator(AbstractList.java:308)......java....
2018-12-08 18:41:46 14034
原创 数据结构——聊聊Java/Android的Mutable
闲来无事,翻了翻android.jar包的代码,看能不能吸取下Google工程师的精髓。在android.util包下,看到了MutableInt、MutableDouble…这几个类。搜了搜,Java自己的包里面也有一套Mutable。故探究一下。mutable:易变的0x1. 实现以MutableInt为例,Android包的实现很简单:public final class Mut...
2018-10-10 17:16:05 20271
原创 android annotations
@CallSuper 必须调用父类的此方法,即super.xxx() 例如你写一些公共超类,例如BaseActivity时,你希望子类必须调用BaseActivity.onCreate()方法(例如你要在此做一些统计),你可以在BaseActivity.onCreate()上加上此注解。@CheckResult 此方法的返回值必须得到处理。 例如:@CheckResult...
2018-09-17 11:11:52 11602
原创 架构--探索Architecture Component之TaskExecutor
万丈架构平地起,带你拆解Google Android Architecture Component(以下简称 Arch)系列之一。此次解析比较简约且独立的部分,android.arch.core.executor包。让我们来学习下Google的TaskExecutor。此包从属于android.arch.core:runtime 可以理解为acrh的基础工具集。包下就三个...
2018-09-11 19:37:10 25148
原创 Java之禅——软/弱引用踩坑记
看到这篇文章,想必已经弱应用/软引用有一定了解了。且平时也会用它来干些什么,比如防止内存泄露等。 下面请先阅读一段manager代码:/** * 生命周期很长的一个类,例如管理类这种单例 */public class LongLifeManager { public static final String TAG = "LongLifeManager"; priv...
2018-08-02 16:24:01 10844
原创 Android开发工程师iOS之旅--单例模式
+ (AppManager *)shareInstance { //Java中喜欢命名为getInstance,但是这里用shareInstance,因为get前缀在OC中有特殊含义 static AppManager *instance; //与Java的static可不一样,这里的局部变量instance的存储区会从栈区放到静态存储区,从而延长了其生命周期,下次调用shareInsta...
2018-07-05 09:47:30 11391
原创 Android开发工程师iOS之旅--Objective-C
野指针:野指针就是指向垃圾内存的指针,这个指针地址不是NULL。指向的对象被释放了,但是这个指针还没有置为nil,再次访问指向的值的时候就会出现不可预期的错误 僵尸指针:“僵尸指针”就是野指针的一种情况,即该指针指向的对象已经被释放,但是却没有对当前指针赋值为nil。 僵尸对象:简单的来说,僵尸对象是已经被释放的对象。如果在程序中再度使用该对象,一般会出现报错:unrecognized sel...
2018-07-05 09:41:24 11639
原创 Android去掉/混淆Log,反编译都看不到
出发点: 当然是由于编程习惯太好,打了一堆中文log,其实只是想给测试看。然而如果包被反编译,看log基本都能理解流程了,有点尴尬。所以此文主要探究proguard配置,以去除log。以下过程示例,来自于这段代码。public class MainActivity extends AppCompatActivity { private static final Strin...
2018-05-29 20:57:37 26245 1
原创 从探讨Kotlin单例实现讲讲其与Java代码的互相转换
1.Kotlin与Java代码的互转。2.Kotlin单例的实现细节(线程安全、饿汉)。
2017-11-25 15:34:28 11295
原创 Android雪花下落效果
Android雪花飘落\下雪\Snowflakes View\Fall Snow View\Snow Flower View
2016-08-16 18:06:48 740
原创 Android如何在动画时将View移出父布局/如何将View显示在父布局外(android:clipChildren属性)
Android进行动画时,将View移出父布局,View被裁剪或者消失。clipChildren属性可以解决这个问题。
2016-08-02 17:44:40 14881 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人