安卓

安卓

MVVM 设计模式的新闻客户端

一个MVVM设计模式的新闻客户端Demo程序使用Kotlin编写本意是想了解和学习MVVM设计模式使用的类库如下:Gson,Glide,Okhttp,RxJava,Retrofit使用Jetpack组件,Fragment之间切换使用Navigation网络数据大约10分钟更新一次支持上拉加载以及下拉

2020-03-27
528 0

将项目从 support 库手动升级到 androidx

原来的support库转换到androidx都有相对于的库,官方地址如下:需要科学上网google原support库对应的androidx库例如原来的com.android.support:appcompat-v7库,转换到androidx对应的库为:androidx.appcompat:appco

2020-02-09
1,383 0

android 10 api 变更

google官方地址google收缩权限以及规范apk运行时状态,意味着google的Android系统将更加规范,将有效打击各种使用黑科技的app。正是这些所谓的黑科技,一定程度上,影响手机流畅及侵犯用户隐私。但也正是这些黑科技,android的世界才多姿多彩。针对所有应用的变更TLS1.3默认开

2020-02-09
506 0

Android 热加载 dex

参考文章需要注意Android5.0和4.4jvm加载机制不同,需要测试兼容性实践定义接口packagecom.zhouzhou.hunxiao.hotload;publicinterfaceSignatureInterface{StringgetSignature();}实现接口packageco

2019-11-19
465 0

最新常规app前台运行保活手段

最新常规app前台运行保活手段最近做了一个项目,需要一直运行在前台,系统虽然是定制的,但厂商不配合,不去修改系统,使app一直运行在前台所以保活手段只能app端实现某些保活手段酌情使用,因为这个项目运行在某台长期运行的设备上,而不是手机,所以不考虑耗电等问题随着Android版本更新,很多黑科技保活

2019-11-19
1,534 0

今日头条MultiDex启动优化

记录一下第一步启动Application后,在attachBaseContext中,判断是否主进程如果是主进程,则创建一个文件,并启动一个进程由于进程是单独的JVM启动的,在这个子进程中,会再次进入attachBaseContext执行MultiDex.install()此时主进程进入while循环

2019-10-15
519 0

mmap 是什么

什么是mmapmmap的作用是,能将一个文件映射到内存中,你可以像操作内存(Buffer)一样读写文件内容为什么要使用mmapmmap能加快文件的读写速度,因为它是直接被映射在内存中的,目前腾讯的MMKV就是使用了mmap,使其的读写速度非常快java中使用mmap的类是MappedByteBuff

2019-10-15
564 0

Flutter 中的文本编辑器

在Android中,使用 EditText 进行文本编辑,那么在Flutter中呢?TextField 可以实现文本编辑功能import 'package:flutter/material.dart';void main() { runApp(new SampleApp());}class Sam

2019-10-15
412 0

Android 8.0通知栏渠道,渠道组的适配和使用

android8.0开始引入了渠道组的概念,app可以对通知类型进行细分,比如划分为:广告消息,私聊消息,群聊消息等。但其实到目前为止,查看了下微信,qq基本是没有做这样的适配的。,反倒是爱奇艺划分的比较详细,不仅划分了通知渠道,更划分了渠道组。本文分别介绍如何划分渠道和渠道组。先看看小米安全中心和

2019-10-15
430 0

Navigator 使用

Navigator 使用注意点:Navigator 与 MaterialApp使用 Navigator 导航到下一个页面后,下个页面的 Widget 不能是 MaterialApp虽然可以成功的导航,但是,将导致 MaterialApp 无法 调用 Navigator.pop(context) 方法

2019-10-10
387 0

future timeout 方法

future 中的任务可能执行很长时间,比如一个网络请求,在网络环境差的情况下,可能会执行超过 10s 的实际此时,可以使用 Future.timeout() 方法,控制执行时间Future.timeout(Duration(seconds: 5), onTimeout: () { retur

2019-10-10
579 0

Flutter setState 使用

setState使用注意点在使用setState前,需要使用if(mounted)判断当前Widget是否位于界面中,否则会导致异常if(mounted){setState((){xxxxx})}尤其是使用async进行页面的异步刷新时,需要使用

2019-10-09
316 0