Android
文章平均质量分 76
且听真言
努力工作,玩命生活。
展开
-
Android 14适配
Android 14适配。原创 2023-07-15 15:22:53 · 5254 阅读 · 0 评论 -
Android 架构设计学习
应用架构定义了应用的各个部分之间的界限以及每个部分应承担的职责。所以应当按照某些特定原则设计应用架构。原创 2023-04-16 14:38:00 · 533 阅读 · 1 评论 -
Android 应用启动时间统计方式
TTID 指标用于测量应用生成第一帧所用的时间,包括进程初始化(如果是冷启动)、activity 创建(如果是冷启动/温启动)以及显示第一帧。在 Android 4.4(API 级别 19)及更高版本中,Logcat 提供了一个 Displayed 值,用于测量从启动进程到完成在屏幕上绘制 activity 的第一帧之间经过的时间。在 Android 4.4(API 级别 19)及更高版本中,Logcat 包含一个输出行,该行包含名为Displayed的值。原创 2023-03-26 15:42:15 · 2686 阅读 · 0 评论 -
WebView白屏优化的一些整理
1.H5页面运行在独立进程中,H5打开需要首先启动Web进程。2.每次关闭H5页面会通过exitProcess(0)关闭Web 进程。原创 2023-03-12 12:09:11 · 1162 阅读 · 0 评论 -
Android应用启动优化笔记整理
应用启动相关流程与优化。应用启动主要涉及SystemServer进程 和 app进程。SystemServer进程负责app进程创建和管理、窗口的创建和管理(StartingWindow 和 AppWindow)、应用的启动流程调度等。App进程被创建后,进行一系列进程初始化、组件初始化(Activity、Service、ContentProvider、Broadcast)、主页面的构建、View加载。原创 2023-03-05 15:50:52 · 536 阅读 · 0 评论 -
Android动态运行时权限
android 6.0(API 级别 23)开始,android引入了运行时权限,应用安装时不向其授予权限,应用运行时向其授予权限。如果在运行时该功能没有动态地申请相应的权限,就会抛出SecurityException异常。android的运行时权限的申请过程主要有两步:1、在需要申请权限的地方检查该权限是否被授权,如果已经授权就直接执行,如果未授权就动态申请权限。原创 2023-01-05 17:06:23 · 2394 阅读 · 0 评论 -
Android13适配
1.WebChromeClient的 API onReachedMaxAppCacheSize 没了2.WebSettings的setAppCacheEnabled(true) 没了WebView调整:废弃setAppCacheEnabled与setForceDark方法;(若设置 targetSdk>=33 则此项必需适配!)修改为。原创 2023-01-04 11:35:53 · 2935 阅读 · 0 评论 -
Android MAT的使用
Java 8 和Java 11都有的情况下,把Java 11放到Java 8前面,这样Java环境才是11。最后Java -version 验证一下。由于最新版的MAT还需要JAVA 11,所以还需要配置JAVA 11的环境。原创 2022-12-21 20:45:54 · 805 阅读 · 0 评论 -
Android Studio Profiler 检查内存
Android Studio Profiler 检查内存简单介绍。原创 2022-12-21 14:30:11 · 6436 阅读 · 0 评论 -
TraceView使用
TraceView 是 Android SDK 中内置的一个工具,用于加载 trace 文件,用图形的形式展示代码的执行时间、调用次数及调用栈,便于我们分析。原创 2022-12-20 17:16:34 · 987 阅读 · 0 评论 -
Android ANR分析-笔记
ANR:Application Not Responding,即应用无响应。原创 2022-10-17 16:54:06 · 3469 阅读 · 0 评论 -
LeakCanary使用学习(未完)
1.LeakCanary 如何自动初始化LeakCanary只需添加依赖就可以实现自动初始化。LeakCanary是通过ContentProvider实现初始化的,在ContentProvider 的 onCreate方法中初始化LeakCanary。并且MainProcessAppWatcherInstaller是在主线程中初始化的。注意:ContentProvider的初始化是在Application的onCreate之前完成的,所以LeakCanary的初始化方法AppWatcher.manual原创 2022-02-27 19:11:06 · 1089 阅读 · 1 评论 -
软键盘问题整理
最近开发中遇到了一些软键盘相关的问题,所以整理下与大家分享:一、软键盘的开启与关闭开启:1、获取InputMethodManager实例。2、调用showSoftInput()方法。fun showSoftInput(view: View?) { view?.let { val inputMethodManager = it.context?.getSystemService(Context.INPUT_METHOD_SERVICE.原创 2022-02-12 19:08:43 · 1551 阅读 · 0 评论 -
android ViewBinding
一、kotlin-android-extensions在使用ViewBinding之前,我们一直使用的是kotlin-android-extensions,使用kotlin-android-extensions可以节约很多写findViewById的时间。不过这个kotlin-android-extensions插件已经废弃了,简单说一下kotlin-android-extensions存在的问题:1.通过反编译kotlin-android-extensi...原创 2021-07-17 21:12:00 · 5417 阅读 · 0 评论 -
Rxjava 整理(未完)
一、定义RxJava是一个基于事件流、实现异步操作的库。二、gradle配置 implementation 'io.reactivex.rxjava3:rxjava:3.0.0'三、 Rxjava相关操作符介绍1.create() 创建操作符。创建被观察者对象。private fun doRxJavaCommonTest() { Observable.create(ObservableOnSubscribe<String> { ..原创 2021-07-11 19:08:01 · 357 阅读 · 1 评论 -
OKHttp源码分析
OKHttp作为常用的网络框架,Okhttp是由square公司开发。掌握OKHttp的用法以及它的内部工作原理还是很有必要的。原创 2021-05-29 18:40:19 · 322 阅读 · 0 评论 -
Retrofit 整理
1.RetrofitRetrofit是基于OkHttp框架来实现请求的,它是基于OkHttp框架的一套封装,利用动态代理实现网络请求,支持Gson、RxJava的适配。2.使用Retrofit时gradle配置implementation 'com.squareup.okhttp3:okhttp:4.8.1'implementation 'com.squareup.retrofit2:retrofit:2.9.0'implementation 'com.squareup.retro.原创 2021-05-23 18:29:48 · 324 阅读 · 0 评论 -
Kotlin中@JvmOverloads注解的作用
在Kotlin中@JvmOverloads注解的作用:指示Kotlin编译器为此函数生成替换默认参数值的重载。如果一个方法有N个参数,其中M个具有默认值,则会生成M个重载。第一个重载采用N-1个参数(最后一个采用默认值),第二个采用N-2个参数,依此类推。因为在 Kotlin 中可以调用具有默认参数值的方法或者构造函数,但是在 Java 代码调用相应 Kotlin 代码却不行,及Java 代码不能调用Kotlin 中定义的具有默认参数的重载函数或构造函数。@JvmOverloads 就是用来解.原创 2020-10-05 14:56:01 · 1955 阅读 · 0 评论 -
Android实现文本折叠效果
小需求:默认展示4行,超过4行出现“查看全部”,点击则加载浮层显示完整内容;实现是参考下面网址代码,但是有一些改动(主要涉及纯引英文的文本下面网址的代码可能有些问题)https://www.jianshu.com/p/f4f99eb932d4最终显示代码如下:import android.content.Contextimport android.graphics.Col...原创 2020-03-07 17:52:32 · 2116 阅读 · 0 评论 -
Android如何获取软键盘的高度
下面代码中Log打印的displayHeight是窗口可视区域的高度,因为style设置的windowNoTitle为true,所以这个高度和通过setContentView设置的布局的可见高度是相同的,所以也可以认为是R.layout.activity_measure_soft_key的可见高度。Log中的parentHeight是视图的根元素的高度,根元素是一个FrameLayout,只有...原创 2020-01-31 20:15:43 · 7916 阅读 · 0 评论