Android开发
文章平均质量分 63
「已注销」
这个作者很懒,什么都没留下…
展开
-
2021-08-12
一个简单的记录步数自定义View一个简单的记录步数自定义View最终效果代码一些理解原作者课程链接一个简单的记录步数自定义View最终效果最终效果代码自定义Viewpackage com.example.viewapplication;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.C原创 2021-08-12 01:59:45 · 175 阅读 · 0 评论 -
一个简单的天气预报APP
运行效果 一个简单的天气预报APP 项目代码https://gitee.com/fakerxuan/weather原创 2021-06-26 11:00:07 · 432 阅读 · 0 评论 -
Android自定义View之自定义drawable
Android自定义View之自定义drawable运行效果代码实现思路:观察动画由哪些流程组成(动画分解)1 初始状态:背景圆圈叉2 旋转动画 时长圆圈从-90 逆时针方向旋转 3圈 -1080度叉 缩小为一个圆点3 圆点上移 时长4 圆点下移 时长5 由一个圆点 变成 一个勾勾 时长动画编排ValueAnimator 改变属性的值addUpdateListeronAnimationUpdate(){获取属性值invalidateSelf();}旋转动画 matri原创 2021-06-26 09:37:40 · 429 阅读 · 0 评论 -
AndroidX适配与升级指南
AndroidX适配与升级指南为什么要升级AndroidX如何在老项目中使用AndroidX升级常见问题解决AndroidX库文件的混淆为什么要升级AndroidX如何在老项目中使用AndroidX升级常见问题解决每个项目遇到的问题可能都是不一样的,出错之后,不要着急。可以通过./gradlew build-stacktrace查看详细的出错堆栈信息,进一步排查AndroidX库文件的混淆...原创 2021-06-08 11:47:39 · 311 阅读 · 0 评论 -
Android类加载机制
Android类加载机制双亲委派Android中主要的类加载机制Class文件的加载Class.forName & ClassLoader.loadClass有何不同双亲委派什么是双亲委派?双亲委派是如何实现的?双亲委派的作用Android中主要的类加载机制Class文件的加载Class.forName & ClassLoader.loadClass有何不同...原创 2021-06-08 00:34:25 · 192 阅读 · 1 评论 -
Handler
HandlerHandler存在的意义数据通信会带来哪些开发中的问题?Handler工作流程Handler:主要函数Handler & Looper & MessageQueue三角关系简述消息分发ThreadLocalHandler面试八问Handler存在的意义跟Web开发的ajax有异曲同工之妙使得Android开发难度大大降低几乎看不到多线程死锁问题数据通信会带来哪些开发中的问题?线程间如何通讯Handler通信实现的方案实际上是内存共享的方案为什么线程间不会干原创 2021-06-08 00:23:56 · 173 阅读 · 1 评论 -
Retrofit2
Retrofit2Retrofit2是什么入门请求方法类标记类参数类原理分析关键类功能说明关键的几个流程Converter种类CallAdapter种类如何自定义一个Converter及CallAdapter?Retrofit中的设计模式Retrofit2是什么官网介绍是A type-safe HTTP client for Android and Java,是一个 RESTful 的 HTTP 网络请求框架的封装,但网络请求不是Retrofit来完成的,它只是封装了请求参数、Header、Url、返回结原创 2021-06-07 17:54:03 · 179 阅读 · 1 评论 -
Fragment笔记
Fragment笔记Fragment的产生与介绍为什么要使用fragmentFragment的生命周期Fragment的产生与介绍Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板等超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至 Act原创 2021-06-06 20:07:23 · 189 阅读 · 3 评论 -
Android自定义View之自定义组合控件
运行效果https://www.bilibili.com/video/BV17w411Z7pV/代码valuesattrs.xml<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="FlowLayout"> <attr name="android:gravity"/> <attr name="andro原创 2021-06-05 19:23:14 · 257 阅读 · 3 评论 -
CardView+RecyclerView实现仿探探UI
运行效果 Android CardView+RecyclerView实现仿探探UI 代码https://gitee.com/fakerxuan/android-learning/tree/master/原创 2021-06-05 17:44:24 · 193 阅读 · 0 评论 -
Android自定义View之实现流式布局
流式布局把子控件从左到右摆放,如果一行放不下,自动放到下一行自定义布局流程1. 自定义属性:声明,设置,解析获取自定义值 在attr.xml中声明3. 测量:在onMeasure 方法测量自身的宽高和child的宽高4. 布局:在onLayout方法里面根据自己的规则来确定children的位置5. 绘制:onDraw6. 处理layoutParams7. 触摸反馈:滑动事件...原创 2021-06-04 20:19:58 · 250 阅读 · 0 评论 -
Android自定义View之自定义一个简单的阶梯式布局
onMeasure:确定自身的大小确定子View的大小流程:1. ViewGroup开始测量自己的尺寸2. 为每个子View计算测量的限制信息3. 把上一步确定的限制信息,传递给每一个字View,然后子View开始measure自己的尺寸4. 获取子View测量完成后的尺寸5. ViewGroup根据自身的情况,计算自己的尺寸6. 保存自身的尺寸onLayout:1. 根据规则确定子View位置流程:1. 遍历子View2. 确定自己的规则3. 子View的测量尺寸.原创 2021-06-03 21:49:08 · 414 阅读 · 1 评论 -
启动耗时优化
启动耗时统计systrace统计启动耗时页面加载耗时优化原创 2021-06-01 21:32:20 · 149 阅读 · 0 评论 -
性能优化简介
性能优化性能优化的重要性及方向优化方法性能优化的四个方向流畅性优化方向页面显示速度启动速度优化响应速度内存优化常见内存泄露原因优化内存空间稳定性优化流量优化安装包大小优化减少安装包大小的常用方案总结性能优化的重要性及方向优化方法性能优化的四个方向流畅性优化方向页面显示速度优化原因页面需要绘制的内容(布局 控件)太多,从而导致页面测量时间过长绘制效率过低,从而导致绘制时间过长优化方案布局层级优化异步加载xml离屏预渲染启动速度优化优化原因初次打开应用时,大量原创 2021-06-01 20:46:58 · 207 阅读 · 0 评论 -
Android自定义View
Android自定义ViewAndroid自定义View概述Android开发进阶的必经之路为什么要自定义View自定义View的基本方法自定义控件分类自定义View基础View的分类View类简介AttributeSet与自定义属性View视图结构Android坐标系View位置(坐标)描述位置获取方式Android中颜色相关内容View树的绘制流程View树的绘制流程是谁负责的?view的添加view的绘制流程measurelayoutdrawLayoutParamsMarginLayoutParams原创 2021-05-31 11:27:26 · 267 阅读 · 0 评论 -
Android APK签名
Android APK签名Android APK签名是什么?V1签名方案概述V2签名方案概述Android APK签名是什么?V1签名方案概述V2签名方案概述可商用的多渠道自动化打包方案原创 2021-05-29 15:02:47 · 135 阅读 · 0 评论 -
Android依赖注入框架Hilt基本使用
Android依赖注入框架依赖注入的框架类型什么是控制反转——IOC(inversion of control)什么是DI(dependency injection)依赖注入IOC的优势IOC的缺点Hilt如何使用step1配置应用程序step2 配置需要依赖注入的类step3.1 定义对象如何被创建step3.2 使用@binds提供接口实现注入能力作用域scopeHilt的局限性依赖注入的框架类型什么是控制反转——IOC(inversion of control)什么是DI(dependenc原创 2021-05-29 12:51:17 · 341 阅读 · 0 评论 -
Jetpack笔记
Jetpack笔记什么是JetpackJetpack的优势Jetpack组件库介绍使用Jetpack架构开发模式LIfecycle架构组件原理解析什么是JetpackJetpack是众多优秀组件的集合。是谷歌推出的一套引领Android开发者逐渐统一开发规范的架构Jetpack的优势基于生命周期感知的能力,可以减少NPE崩溃、内存泄露、模板代码。为我们开发出健壮且高质量的程序提供强力保障组件可以单独使用,也可以搭配使用,搭配Kotlin语言特性可以进一步加速开发。Jetpack组件库介绍原创 2021-05-17 23:39:14 · 228 阅读 · 4 评论 -
浅谈Web Debugging与网络抓包
浅谈Web Debugging与网络抓包抓包常用工具Charles抓包原理网络安全配置抓包常用工具wireshark: 侧重于TCP,UDP传输层,HTTP/HTTPS也能抓包,但不能解密HTTPS报文。fiddler:支持HTTP/HTTPS协议,篡改请求入参,篡改响应数据,设置请求断点重发,弱网络模拟,只支持windowscharles:基本功能同上,全平台支持,界面简洁,操作简单Charles抓包原理网络安全配置...原创 2021-05-16 03:15:01 · 384 阅读 · 0 评论 -
Android网络编程学习笔记
知识图谱Android网络编程核心技术概述#mermaid-svg-1LubylYv7zSWJWHF .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-1LubylYv7zSWJWHF .label text{fill:#333}#mermaid-svg-1LubylYv7zSWJWHF .node rect原创 2021-04-28 20:04:31 · 181 阅读 · 0 评论 -
并发与多线程开发核心技术
知识图谱Android Thread线程的几种创建方式通过Thread类或Runnable接口创建通过Android 提供的AysncTask创建通过HandlerThreadIntentServiceThreadPoolExecutor线程的优先级线程的几种状态与常用方法...原创 2021-04-26 18:10:27 · 243 阅读 · 0 评论 -
Android导航架构实战
Android路由传统路由方式Arouter&Navigation横向对比如何做好技术选型原创 2021-04-19 17:40:54 · 409 阅读 · 5 评论 -
Activity-Fragment-RecyclerView
文章目录Launcher启动流程与ActivityThread深入分析Launcher启动流程与ActivityThread深入分析原创 2021-04-17 18:43:31 · 167 阅读 · 0 评论 -
Kotlin学习笔记
文章目录Kotlin概述Kotlin特点Kotlin设计理念Kotlin构建流程Kotlin必备基础Kotlin基本数据类型Kotlin的数组生成数组的方式遍历数组的5种方式Kotlin的集合集合排序Kotlin方法与Lambda表达式Lambda表达式Kotlin方法进阶闭包(Closure)Kotlin类与接口Kotlin中的泛型泛型约束Kotlin中的协变与逆变Kotlin注解@Target@RetentionKotlin扩展(Extensions)技术与应用Kotlin中常用的扩展Kotlin概述原创 2021-04-16 21:33:41 · 472 阅读 · 2 评论