安卓架构组件-依赖注入

安卓依赖注入什么是依赖注入依赖注入(DI,Dependency Injection)是一种广泛的编程技术。把依赖(所需对象)传递给其它对象创建,好处是类的耦合更加松散,遵循依赖倒置的原则。类获...

2024-06-07

Android应用程序启动源码浅析

一、启动流程sequenceDiagram participant User participant Launcher participant ActivityManagerService participant Zygote participant AppProcess participant Appli...

2024-06-05

Android Media Framework - 开篇

前言Android Media是一块非常庞大的内容,上到APP的书写,中到播放器的实现、封装格式的了解,下到编解码组件的封装、VPU API的了解,每块内容的学习都需要我们下很大的功夫。此外,...

2024-05-28

关于Android studio无法勾选SDK的问题

这是我遇到的问题,相信也是大多数人遇到的问题,我的经历是之前下载过一次Android studio,用过一段时间后虚拟机出问题了,一直连不上,我都是用手机代替运行,发现太麻烦了,还是决定重...

2024-03-17

Android Compose开发

目录 好处 入门 Composable 布局 其他组件 列表 verticalScroll 延迟列表 内容内边距 性能 修饰符 偏移量 requiredSize 滚动 添加间距Spacer...

2024-02-27

Android系列:四大组件、五大存储、六大布局

目录 一、四大组件 1、activity 2、service 3、content provider 4、broadcast receiver android四大组件总结 (1)4大组件的注册 (2)4大组件的激活 (3)4大组件的关...

2024-01-30

Android系列:AndroidStudio提高编译速度的几种方法

第一种:减少依赖库的使用,让代码更加精简。对于一些必须依赖的库要尽量使用jar包或者依赖库,这样他每次就会在本地直接加载,而不是每次FQ检查更新第二种:打开Android Studio,选择...

2024-01-30

Android系列:AndroidStudio3.x中api、compile和implementation的区别

首先在AndroidStudio3.x中compile已经过时由implementation和api来代替 其次compile与api完全等同 3.x中可以完全将compile换成apimplementation与api的区别implementation...

2024-01-30

Android系列:Android入门(创建、编译、运行、打包、安装)

一.创建Android项目1.选择Emtpy Activity=>Next 2.配置项目输入Name(名称) Package.name(包名) Save location(保存位置) Language(语言) Minimum API level(最低的API级别)...

2024-01-30

Android对接华为AI - 文本识别

准备工作在开发应用前:
1、需要在AppGallery Connect中配置相关信息,包括:注册成为开发者和创建应用。
2、使用ML Kit云侧服务(端侧服务可不开通)需要开发者在AppGallery Connect...

2024-01-24

Android gradle dependency tree change(依赖树变化)监控实现,sdk version 变化一目了然

目录 前言 基本原理 执行流程 diff 报告 不同分支 merge 过来的 diff 报告 同个分支产生的 merge 报告 同个分支提交的 diff 报告 具体实现原理 我们需要监控怎样的...

2024-01-24

onMeasure被执行两次原理解析

目录什么情况下会onMeasure会执行?为什么onMeasure会被执行两次?分析外部是如何多次调用measure方法的什么情况下会onMeasure会执行?进入View的measure方法:void measure(){...

2023-07-31

Android SeekBar在刷新使用中需要注意的问题

目录问题分析问题解决方法Android开发笔记:关于SeekBar在刷新使用中的一些问题问题今天在用Navigation 在两个Fragment之间导航时发现了从第二个Fragment返回到第一个Fragmen...

2023-07-25

Android开发笔记XML数据解析方法及优缺点

目录何为XML数据如何解析XML数据1.Pull解析2.简单的Pull解析3.SAX解析何为XML数据XML 指可扩展标记语言(eXtensible Markup Language)。可扩展标记语言(英语:Extensible Markup...

2023-07-25

Android Flutter制作一个修改组件属性的动画

目录简介flutter中的动画widgetAnimatedContainers使用举例总结简介什么是动画呢?动画实际上就是不同的图片连续起来形成的。flutter为我们提供了一个AnimationController来...

2023-07-25

Android ViewPager你可能不知道的刷新操作分享

目录前言一、清缓存重置Adapter的方案二、TabView+ViewPager的差分刷新2.1 使用arguments的方式2.2 使用Tag的方式三、自定义Tab或第三方Tab四、ViewPager2的区别总结前言哎...

2023-07-25

Flutter控件之实现Widget基类的封装

目录一、需要封装哪些属性二、确定基类WidgetInkWellGestureDetectorInkResponse原始指针事件三、基类实现具体使用四、相关总结在短时间的接触Flutter之后,有一个问题一直摆...

2023-07-25

Android那两个你碰不到但是很重要的类之ViewRootImpl

目录前言1.ViewRootImpl哪来的?2 ViewRootImpl 一个View链渲染的中转站3 不能在子线程操作View?4 View 挂载5 View.post()的Runnable最终在哪执行了?6 为什么View.post 可以获...

2023-07-25

Android通过BLE传输文件遇到问题解决

目录1、遇到的问题2、 能不能通过BLE传输文件3、 如何传输文件4、如何保证可靠性和稳定性1、超时重传2、序列号3、数据校验5、 传输速度提升 RequestMtu1、遇到的问题公司要...

2023-07-25

Flutter DateTime获取本月的开始时间与结束时间方法

目录正文Flutter DateTime 常用操作1. 获取当前日期时间2. 获取指定日期时间3. 获取时间戳4. 将时间戳转换为日期时间5. 获取日期时间的年、月、日、时、分、秒6. 获取日期...

2023-07-25

Android中创建子线程的方式详解

在 Android 中,创建子线程的方式通常有以下几种:使用 Thread 类进行创建 Thread 是 Java 中的一个类,可以通过继承 Thread 类或者创建 Thread 对象并传入 Runnable 对象来创建...

2023-07-25

JankMan-极致的卡顿分析系统

目录1.卡顿分析系统介绍2.思路介绍2.1方法运行数据采集2.1.1方法ID映射2.2.2函数记录能力2.2.3.运行方法记录内容2.2帧数据采集2.2.1于传统方式的区别2.2.2FrameMatrix的能...

2023-07-25

使用Jetpack Compose实现翻转卡片效果流程详解

目录介绍执行ML Kit银行卡识别输出结论如何使用 Jetpack Compose 创建翻转卡片效果介绍在电子商务和银行应用程序中输入卡信息是很常见的情况。我认为让用户更轻松地处理这...

2023-07-25

Android MVP模式面向接口写法

首先我们需要知道mvp所代表的含义,m即model可以理解成用来获取数据和处理数据,v即view可以看成activity和fragment用来显示数据和处理交互,p即presenter可以理解成用来提供数...

2023-07-25

Android打开WebView黑屏闪烁问题排查

目录现象排查 & 尝试修复源码探究更好的修复方案现象点击搜索框,打开新的 webview 页面时,出现了黑色过度页面。排查 & 尝试修复找到了一台可复现的手机,一加 8 (android 13),检查...

2023-07-25

详解Android如何设计一个全局可调用的ViewModel对象

目录一、思路二、具体实现1、方式一:可以全局添加和获取任意ViewModel2、方式二:更方便在Activity和Fragment中调用一、思路viewModel对象是存储在ViewModelStore中的,那么如果...

2023-07-25

Android那两个你碰不到但是很重要的类之ActivityThread

目录前言1、和系统进程打交道的桥头堡2、为什么使用ContentProvider可以实现初始化3、Activity是什么时候开始渲染的4、原来还可以监控组件的生命周期5 、SharedPreference...

2023-07-25

Android Studio Electric Eel支持手机投屏

目录Android Studio 手机投屏如何开启功能投屏效果Android Studio 手机投屏当我们在线上做技术技术分享或者功能演示时,有时需要共享连接中的手机屏幕,通常我们会求助于 Vysor...

2023-07-25

flutter简单使用案例

目录flutter简单使用前言一、布局介绍二、本地图片使用三、网络数据解析四、路由使用五、插件的使用使用Flutter实现短视频上滑翻页效果前言PageView 组件介绍使用示例PageC...

2023-07-25

Android适配器Adapter与ListView和RecycleView的简单使用

目录适配器ListView的简单用法关于ListView性能的优化ListView的鼠标监听事件RecyclerView的简单用法在使用ListView和RecycleView之前,我们得先了解适配器的概念。适配器具...

2023-07-25

Android ViewModel的作用深入讲解

ViewModel它的作用是什么呢ViewModel 类旨在以注重生命周期的方式存储和管理界面相关数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存(官方解释)看到这里我...

2023-07-25

Flutter使用AnimationController实现控制动画

目录简介构建一个要动画的widget让图像动起来总结简介之前我们提到了flutter提供了比较简单好用的AnimatedContainer和SlideTransition来进行一些简单的动画效果,但是要完全...

2023-07-25

Android BLE设置MTU大小实现详解

目录MTU是什么?BLE版本不同MTU不同自定义MTUMTU是什么?MTU是指在一个协议数据单元中(Protocol Data Unit, PDU) 有效的最大传输Byte。MTU默认是23byte,但是供我们使用的只有20b...

2023-07-25

Android WindowManger实现桌面悬浮窗功能

目录效果图使用WindowManager实现分析问题参考如果想实现一个在桌面显示的悬浮窗,用Dialog、PopupWindow、Toast等已经不能实现了,他们基本都是在Activity之上显示的,如果想实...

2023-07-25

Flutter替换字符串中的html标签

目录replaceAll 方法基本语法提取匹配的部分替换匹配的部分replaceAll 方法可以使用正则表达式和 replaceAll 方法来替换字符串中的HTML标签。这是一个示例代码:String html...

2023-07-25

一文带你搞清楚Android游戏发行切包资源ID那点事

目录概述问题分析原理分析解决思路行动0x01:保留旧ID获取旧ID:public.xml复用旧IDAapt2命令保留新资源ID0x02:修改资源ID需要修改的位置更新R Smali普通IDR$styleable.smali其...

2023-07-25

Kotlin中的密封类和密封接口及其应用场景

目录密封类密封接口何时使用密封类与密封接口密封类和密封接口是 Kotlin 中允许创建受限类层次结构的两个特性。这两个构造用于定义一组有限的可能子类型,并防止在声明的层次...

2023-07-25

Android依赖注入框架Dagger2的使用方法

目录Dagger2注入框架原理简要分析示例代码生成代码分析DaggerActivityComponent类MainActivity_MembersInjector何处真正产生了实际参数简要流程图(仅适用于本示例)Dagger2...

2023-07-25

Android开发笔记之Fragment的使用教程

目录何为碎片特点如何引入碎片静态引入动态加载碎片的通信活动和碎片间的通信碎片和活动间的通信碎片和碎片间的通信何为碎片官方文档中提到:A fragment represents a modula...

2023-07-25

Android本地搜索业务优化方案

目录引言背景方案前置知识JavaScriptCore 简介JavaScriptCore 类型API 介绍JSContextGroupCreateJSGlobalContextCreateInGroupJSEvaluateScript关键代码示例JNI(Java Nativ...

2023-07-25

Flutter模仿实现微信底部导航栏流程详解

目录前言使用TabBar实现TabBar介绍TabBar的重要属性说明TabBarView介绍TabBarView的重要属性TabBar总结TabBar实现底部导航的例子BottomNavigationBar实现BottomNavigationB...

2023-07-25

一文详解在Android中Service和AIDL的使用

目录Service 和 AIDL 的使用1. Service1.1 Service 的基本生命周期1.1.1 startService1.1.2 bindService1.2 Service 的启动方式1.2.1 startService1.2.2 bindService1.2.3...

2023-07-25

Android Flutter实现弹簧动画交互的示例详解

目录1.创建一个动画控制器2.使用手势移动Widget3.创建一个动画Widget4.计算速度以模拟弹簧运动物理模拟可以让应用程序的交互感觉逼真和互动,例如,你可能希望为一个 Widget 设...

2023-07-25

Flutter App开发实现循环语句的方式实例

1 for 循环Flutter 中循环语句的使用方式与其他编程语言比较类似,常见的包括 for 循环和 while 循环。Flutter 中的 for 循环语法如下:for (var i = 0; i < count; i++) {...

2023-07-25

Flutter SystemChrome控制应用程序的系统级别行为

SystemChromeSystemChrome 是 Flutter 提供的一个类,用来控制应用程序的系统级别行为,如设置全屏,状态栏等。设置状态栏透明SystemChrome.setSystemUIOverlayStyle( SystemUiO...

2023-07-25

Flutter list 数组排序示例解析

目录按照整数值进行排序按照Person的年龄字段进行排序按照整数值进行排序以使用Dart的 sort() 方法对Flutter中的List进行升序或降序排序。 sort()方法需要传递一个比较函数...

2023-07-25

详解Android官方架构中UseCase

目录1. UseCase 的用途2. UseCase 的特点2.1 不持有状态2.2 单一职责2.3 可有可无3. 如何定义 UseCase3.1 Optional or Mandatory?3.2 Class or Object?3.3 Class or Function...

2023-07-25

Flutter开发之Shortcuts快捷键组件的用法详解

目录1. Shortcuts 组件的简单使用2. 快捷键与焦点的关联在桌面端的开发中,键盘快捷键是非常常见而必要的,比如 Ctrl + F 搜索, Ctrl + C 复制等。Flutter 既然可以开发桌面端应...

2023-07-25

libmp3lame及API介绍和使用详解

目录API介绍简单使用API介绍API地址是对libmp3lame.so的编码部分最基础接口的介绍,本库特包含了增加id3标签和mp3的解码的支持。这里并不是完整的文档,但是你可以通过查看"inc...

2023-07-25

Bitmap引起的OOM问题

目录1.什么是OOM?为什么会引起OOM?2.避免Bitmap引起的OOM技巧小结1)采用低内存占用量的编码方式2)图片压缩3.及时回收图像4.其他方法1.简单通过SoftReference引用方式管理图片资...

2023-07-25
返回顶部
顶部