Android Weekly Notes Issue #403

作者: 圣骑士wind | 来源:发表于2020-03-02 17:28 被阅读0次

    Android Weekly Issue #403

    OkHttp Interceptor - Making the most of it

    Interceptor有两种类型(有个图很好):

    • Application Interceptors. 应用代码和okhttp之间.
    • Network Interceptors. okhttp和server之间.

    实用情形:

    • 错误日志.
    • caching response.
    • header like access token.
    • refreshing token.
    • enable Gzip at Android.

    Multiple resource folders in Android

    资源文件夹也可以分类整理.

    要声明文件夹:

    android {
        [...]
        sourceSets {
            main.res.srcDirs += [
                    'src/main/java/your/package/name/res',
                    [...]
            ]
        }
    }
    

    Showing the Android Keyboard Reliably

    显示小键盘的可靠方法.

    强制显示会有的问题.

    进一步优化可以利用Kotlin的扩展方法.

    Think before using BuildConfig.DEBUG

    避免使用BuildConfig.DEBUG:

    • 利用flavors, 判断逻辑写两份代码.
    • 定义变量, 每个flavor赋值不同.
    • 如果只在debug的时候需要某个库, 其他flavor使用库的no-op版本.
    • 利用proguard来移除production中的log.

    见: https://medium.com/@trionkidnapper/stripping-log-statements-using-proguard-73dedc68ee97

    -assumenosideeffects class android.util.Log {
        public static boolean isLoggable(java.lang.String, int);
        public static int v(...);
        public static int d(...);
        public static int i(...);
    }
    
    • 多个module的DEBUG可能并不一样, 要用ApplicationInfo.FLAG_DEBUGGABLE.

    也不是完全不能用, 只是可以先考虑其他选择.

    Android Styling: Themes Overlay

    theme overlays.

    Data Encryption on Android with Jetpack Security

    Jetpack Security的用法.

    可以用来加密文件和shared preferences.

    master key被存在AndroidKeyStore里.

    ViewBinding in Fragments: the clean & easy way

    使用ViewBinding的一个辅助类.

    • 更加安全.
    • 简化代码.
    • 生命周期结束的时候置null.

    Simple one-liner ViewBinding in Fragments and Activities with Kotlin

    用代理属性简化ViewBinding的bind.

    Say no to BaseActivity and BaseFragment

    使用BaseActivity和BaseFragment, 然后继承, 可能会导致基类很大, 不好扩展, 无法维护.

    解决办法: 组合.

    利用:

    • Application.ActivityLifecycleCallbacks for Activities.
    • FragmentManager.FragmentLifecycleCallbacks for Fragments.
    • 利用Dagger Multibindings.

    Code

    News

    Android 3.6:

    Technical Writing

    相关文章

      网友评论

        本文标题:Android Weekly Notes Issue #403

        本文链接:https://www.haomeiwen.com/subject/ekzvkhtx.html