
移动端
文章平均质量分 84
qq_27419187
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
android原生项目接入flutter开发的组件
目前主流的混合开发方案有两种集成方式:源码集成、产物集成本篇文件会详细介绍这两种集成方案的具体实现过程。由于开始在项目中使用了源码集成的方案,使用源码集成的方法,使用jenkins打包比较麻烦,需要管理两个工程的git仓库,所以后来改成了产物集成的方式。并在最终将产物集成方式整个过程自动化,方便代码及产物管理,接入成本大大降低。源码集成也就是谷歌官方提供的方案[https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-a.原创 2021-07-26 16:19:45 · 417 阅读 · 0 评论 -
android 缓存机制
LruCache采用LinkedHashMap作为存储的数据结构,所以先介绍一下LinkedHashMapLinkedHashMap构造函数,主要就是调用HashMap构造函数初始化了一个Entry[] table,然后调用自身的init初始化了一个只有头结点的双向链表。完成了如下操作:首先是只加入一个元素Entry1,假设index为0:当再加入一个元素Entry2,假设index为15:当再加入一个元素Entry3, 假设index也是0数据结构:LruCache采用LinkedHa原创 2021-01-28 10:38:47 · 409 阅读 · 0 评论 -
Android界面适配--Navigation Bar是否展示及高度计算
Navigation Bar是否展示及高度计算这两天遇到一个bug,这是别的同时写的计算逻辑,由于刚入职,为了让我熟悉流程,所以把这个问题分给了我。页面需要计算ListView的高度,listview高度=屏幕高度 - 页面title的高度-StatusBar的高度-HeaderView的高度-NavigationBar的高度,在小米10上headerView和listView之间有一个很宽的间...原创 2020-05-03 00:29:49 · 1249 阅读 · 0 评论 -
Android单元测试(二):Mockito框架的使用
mock数据mock引入方式mock数据的4种方式普通方式使用注解MockitoRule方式使用运行器方式常用的打桩方式方法验证方式"mock"一词是指模仿或者效仿。因此可以将“mock”理解为一个替身,替代者。单元测试的思路就是我们想在不涉及依赖关系的情况下测试代码。这种测试可以让你无视代码的依赖关系去测试代码的有效性,在实际的单元测试中,我们测试的类之间会有或多或少的耦合,导致我们无法顺利的...原创 2020-04-08 17:28:28 · 654 阅读 · 0 评论 -
android开发--compileSdkVersion、targetSdkVersion、Support库的作用与他们之间的关系
目录基本概念什么是 targetSdkVersioncompileSDKVersionminSdkVersion为何提供支持库基本概念什么是 targetSdkVersion每个Android版本都会对应一个API数字,例如Android 7.0对应的是API 24,当手机的Android系统版本升级的时候,会出现两种情况:提供了新的接口。如果开发者想要在APP中使用Android 7.0...原创 2020-03-19 09:38:07 · 610 阅读 · 0 评论 -
android--应用内更新app
目录android各版本新增限制适配Android 7.0适配Android 8.0:未知来源的应用权限app在线更新是一个比较常见需求,新版本发布时,用户进入我们的app,就会弹出更新提示框,第一时间更新新版本app。在线更新分为以下几个步骤:通过接口获取线上版本号,versionCode比较线上的versionCode 和本地的versionCode,弹出更新窗口下载APK文件(文件...原创 2020-03-18 17:17:43 · 740 阅读 · 2 评论 -
android开发-sp
Android SharedPreferences的理解与使用获取SharedPreferencesSharedPreferences的使用SharedPreferences内部实现原理SharedPreferences的内部类Editorcommit和apply分析Sharedpreferences是Android平台上一个轻量级的存储类,用来保存应用程序的各种配置信息,其本质是一个以“键-值...原创 2020-03-18 11:56:01 · 446 阅读 · 0 评论 -
HotFix方案原理
首先HotFix原理是基于Android Dex分包方案的,而Dex分包方案的关键就是Android的ClassLoader体系。ClassLoader的继承关系如下:这里我们可以用的是PathClassLoader和DexClassLoader,接下来看看这两个类的注释:PatchClassLoader/** * Provides a simple {@link ClassLoader} i...原创 2018-03-19 11:29:55 · 576 阅读 · 0 评论 -
android开发--内存泄露
内存泄露内存泄露Android的4种引用类型强引用 (StrongReference)软引用 (SoftReference)弱引用虚引用ReferenceQueue内存泄露检测工具LeakCanary(可以使用它来检测Activity是否能够被GC及时回收)android自带工具Profiler开发中常见的内存泄露问题Android 5.1 Webview 内存泄漏Handler导致内存泄露内存...原创 2020-03-09 17:08:12 · 337 阅读 · 0 评论 -
Android开发-Activity的启动过程
源码分析在调用activity的startActivity方法之后是怎么执行的,接下来通过跟踪源码,来理一下activity的启动过程。Activity#startActivity@Overridepublic void startActivity(Intent intent) { startActivity(intent, null);} @Overridepublic vo...原创 2020-03-09 10:40:28 · 279 阅读 · 0 评论 -
Android开发-Context理解(Applicatiion、Activity、Service 的Context区别)
Activity、Service、Application类继承关系借助Context真正的实现类,ContextImpl 可以这么理解上面关系:Context 类提供了一组通用的 API;ContextImpl 实现了 Context 所有的功能,为 Activity等应用组件提供 Context 对象;ContextWrapper 包含一个真正的 ContextImpl 的引用 mBa...原创 2020-03-09 09:32:22 · 481 阅读 · 0 评论 -
android动态加载
android插件化插件化需要做的几件事加载插件dex将dex包注入ClassLoader(原理分析)将dex包注入ClassLoader(代码实现)Activity等组件问题加载插件中的资源刚进入一家公司,需要解决以下问题:公司主要是做仪器的,目前有4款app,以后还会增加几款,这样,同一个用户手机上可能需要装多款我们的app,这样不仅安装麻烦,而且不同的功能要打开不同的app,给用户造成不便...原创 2019-05-13 18:14:04 · 244 阅读 · 0 评论