
Android
文章平均质量分 66
shenyu4android
Android 开发
展开
-
知识梳理系列之十——Lifecycle/LiveData/ViewModel的使用总结与原理简析
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-03-11 17:31:18 · 871 阅读 · 2 评论 -
kotlin multiplatform mobile初探
kotlin multiplatform mobile 初探kotlin multiplatform mobile programing 的探索一、什么是kmm?1.1 引用9月15日 kmm发布alpha版本时的一句话:1.2 详细描述二、km支持的平台2.1 支持的平台2.2 工程结构三、kmm的基本原理3.1 Kotlin Native3.2 LLVM3.3 expect/actual四、比较4.1 自身设计思想导致的优缺点4.2 与React Native/Flutter的比较kotlin mu原创 2020-12-31 12:18:00 · 2317 阅读 · 0 评论 -
关于Android启动优化的总结分享
关于Android启动优化的总结分享一、Android应用的启动过程1.Android 冷启动的过程2.Android 热启动的过程二、Android冷启动慢的多种因素1.Android 应用在启动过程中做了过多加载、SDK初始化2.Android 应用方法数超过65535 分包引入问题(分版本)3.禁用了WindowPreview4.JSBundle的初始化和数据传递耗时5.Lottie动效读写文件I/O耗时6.其他耗时操作阻塞主线程更新三、Android 冷启动的甄别手段和优化方向1.甄别手段Trace原创 2020-09-23 19:48:02 · 514 阅读 · 0 评论 -
知识梳理系列之八——Activity的启动过程
知识梳理系列之八——Activity的启动过程总结流程总结时序图总结在应用内,某Activity A通过调用startActivity(Intent)方法启动Activity B的过程:流程总结调用startActivityForResult,使用Instrumentation调用execStartActivity,其中会传入Context、Intent、ActivityThread.mApplicationThread等引用;execStartActivity方法中通过Binder机制调用Ac原创 2020-07-28 18:45:46 · 529 阅读 · 0 评论 -
知识梳理系列之七——Glide的原理
知识梳理系列之七——Glide的原理Glide的基本使用Glide源码解析Glide的三步曲分别做了什么?1. 第一步Glide.with(Context);1.1 初探with1.2 getRetriever获取请求管理索引器对象1.3 RequestManagerRetriever.get()获取Glide.with()的返回值1.4 总结:2. 第二步RequestManager.load2.1 创建RequestBuilder2.2 load3. 第三步into3.1 看来重点在这了,毕竟load没原创 2020-07-27 16:50:26 · 558 阅读 · 0 评论 -
知识梳理系列之五——OkHttp的原理
知识梳理系列之五——OkHttp的原理OkHttp原理解析OkHttp的使用流程源码解析OkHttpClient的实例化过程和构造器模式Request和Call的实例化过程发起同步execute和异步enqueue请求责任链模式重试和重定向桥接Cache处理ConnectionCallServer分发器Dispatcher、线程池、连接池OkHttp原理解析OkHttp的使用流程源码解析OkHttpClient的实例化过程和构造器模式Request和Call的实例化过程发起同步execute和异步原创 2020-07-06 18:00:17 · 599 阅读 · 0 评论 -
知识梳理系列之二——消息机制中的若干重要问题
知识梳理之二——消息机制轮询器Looper创建和轮询三级目录这是一个老生常谈的知识,本文不是全面文章,主要记录一些不常用到但是非常有用的知识点轮询器Looper创建和轮询一、MainThread的Looper创建和准备Android 的启动过程是: 创建init进程 --> Zygote进程 --> SystemServer进程 --> 各个应用进程在SystemServer进程启动后(由Zygote进程fork出)在调用run方法时,调用了Looper.prepareMai原创 2020-07-02 16:19:33 · 487 阅读 · 0 评论 -
知识梳理系列之一——多线程
梳理知识系列之一——多线程本文简明的梳理下多线程基本知识梳理知识系列之一梳理知识系列之一——多线程几个问题1. 为什么要有多线程2. 有哪些方式实现在工作线程中执行操作2.1 Thread/Runnable/FutrueTask 知识及其优缺点2.2 AsyncTask的原理2.3 HandlerThread和IntentService2.4 Executors线程池原理3.并发变成Netty中线程池、时间循环(附)几个问题1. 为什么要有多线程个人的语言总结:在做复杂计算时(比如在CPU中做复原创 2020-06-12 15:55:54 · 344 阅读 · 0 评论 -
Android 图片(Bitmap对象)在内存中所占大小的计算
Android Bitmap 在内存中所占大小计算显示有关概念简单说明计算Bitmap大小显示有关概念简单说明常用的图片格式如 .jpg 、.png、.bmp(Windows)、.gif 等等 是以一定压缩方式压缩的图片文件Android 常用的显示格式包括 RGB_4444、ARGB_8888、RGB565等, Windows 打开图片文件的属性一般有位深度的描述。这个表示的意思是(以A...原创 2020-04-14 16:59:03 · 1232 阅读 · 0 评论 -
git 使用笔记
git使用小结原创 2017-09-25 14:43:02 · 269 阅读 · 0 评论 -
ExpandableListView使用中的问题与解决
ExpandableListView不是什么新鲜的东西了。最近使用到了。记录一下,在修改下拉箭头图片、位置;设置分割线、点击事件分发等问题的内容。原创 2017-09-06 16:00:27 · 863 阅读 · 0 评论 -
Android Shape绘制背景
需要绘制一个背景,上面有圆角,然后四边有边框。是Shape很简单的用法。大概是这样的,就是有几层绘制出来的。原创 2017-09-06 15:21:29 · 2223 阅读 · 0 评论 -
Android Studio 工程中若干小问题总结
Android Studio中的小问题原创 2017-08-28 17:33:47 · 357 阅读 · 0 评论 -
AS设置日志的颜色
Android Studio设置日志的颜色原创 2017-11-05 11:19:59 · 2699 阅读 · 0 评论 -
Android关于列表卡顿的问题(或者说两个列表数据关联的问题)
最近在做一个TV项目时遇到了一个小问题: 主要是这样一种业务,一个主列表,主要是显示video文件的名称,右边一个列表显示详细的信息,包括文件名称、存储路径、视频时长、文件大小等等信息。左边的主列表切换不同的Item时,右边的信息对应变化。 在我使用常规的方式编写列表的时候出现了卡顿的问题,最终发现原因并解决了问题。原创 2017-06-15 11:42:08 · 827 阅读 · 0 评论 -
Retrofit2.0+Rxjava2.0+MVP使用小记(一)
Retrofit+Rxjava+MVP已经出来很长一段时间了,一直以来只是懂一些皮毛,最近静下来学习了一下。决定总结一下使用的方法,于是有了本系列使用小记,这是第一篇。本文仅供参考学习,如有不妥之处,还望批评指正。原创 2017-09-26 10:16:28 · 353 阅读 · 0 评论 -
gradle 配置有关小Tips
最近在重构一个项目,开始用MVP架构模式,看到大神们配置gradle文件的方式,觉得不错,记录一下原创 2017-10-18 10:28:09 · 393 阅读 · 0 评论 -
Android 6.0以上权限处理
最近在开发过程中,遇到适配Android 6.0及以上版本的权限处理问题。java.lang.SecurityException: was not grant permission: ...原创 2017-10-18 11:10:03 · 752 阅读 · 0 评论 -
适配Android 7.0出现读取外部存储问题解决方法
在Android 7.0适配过程中,调用相机/相册、读取指定目录下的文件时,未处理好权限问题时,会出现以下异常:android.os.FileUriExposedException: file:///storage/...原创 2017-10-18 15:52:36 · 5297 阅读 · 0 评论 -
微信分享功能踩坑过程
最近,做一款应用的分享功能,主要业务是分享一个网页给微信、QQ好友,然后用的是微信开发平台、腾讯开放平台的官方SDK分享。其中遇到了一些打不开、分享的坑,填好后,做了一下封装。总结记录一下。原创 2017-12-25 15:40:59 · 5285 阅读 · 4 评论 -
分享到QQ踩坑过程——分享之二
分享部分的第二篇——分享给QQ好友上一篇文章详细介绍了微信分享的一些踩坑过程。这一片主要是分享给QQ好友。废话不说,先看效果图。腾讯开放平台注册开发者账号配置Android Studio工程调用API/封装业务代码调用实现其他注意事项注册开发者账号并获取APP_ID在腾讯开放平台中,按要求注册账户,登录,进入管理中心,然后“创建应用” 创建应用原创 2018-01-15 17:37:30 · 2043 阅读 · 1 评论 -
2018春季面试
最近工作不忙出去面试了一些单位,就面试情况,总结下:面试常见问题:1.Android 部分:1.Activity Fragment 生命周期方法;2.Handler机制的原理, 在工作线程中,实现Handler(主线程中Android已经帮你实现,就是考察看源码、HandlerThread);3.Thread 工作线程、线程池的使用、管理;4.单例模式 (考虑线程安全);...原创 2018-04-02 11:27:27 · 448 阅读 · 1 评论 -
Android OpenGL ES 开发教程(四)
本文转载自安卓巴士。转载 2016-08-04 10:28:48 · 542 阅读 · 0 评论 -
JAVA动态代理的理解(转载)
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。转载 2017-04-15 09:36:50 · 279 阅读 · 0 评论 -
启动其他应用的方式
启动其他应用的几种方式原创 2017-03-22 14:43:07 · 438 阅读 · 0 评论 -
Android 启动过程
一直在做Android开发,除了了解一点Android的基本框架,对于Android的启动过程不胜了解。最近抽空了解了一点。转载 2017-03-09 14:15:46 · 287 阅读 · 0 评论 -
Android Studio导出Jar文件
最近总结了常用的导出Jar文件的方法原创 2016-09-06 19:24:17 · 623 阅读 · 0 评论 -
JVM内存划分和GC机制
最近看了有关Java虚拟机(Java Virtual Machine)的内存划分的资料。整理一下。原创 2016-08-25 14:23:43 · 485 阅读 · 0 评论 -
Android手机横竖屏切换小结
本篇是关于Android横竖屏切换的小结。原创 2016-08-25 10:27:23 · 500 阅读 · 0 评论 -
Android透明式状态栏、导航栏实现
有很多应用有透明式状态栏、导航栏,表现形式是在不同页面里,状态栏可以与最上面的背景图片或者颜色保持一致。典型的案例就是手Q。原创 2016-08-24 17:01:11 · 5280 阅读 · 0 评论 -
Android OpenGL ES 开发教程(三)
本章将从绘图这方面总结OpenGL ES的绘图实际操作过程,以及绘图的相关原理。原创 2016-08-04 10:03:55 · 340 阅读 · 0 评论 -
Android OpenGL ES 开发教程(二)
最近在总结Android OpenGL ES的开发学习过程。本章为总结第二章。主要就两大重要内容聊起。原创 2016-08-03 19:27:08 · 416 阅读 · 0 评论 -
Android OpenGL ES 开发教程(一)
最近在用到了OpenGL ES做Android 开发,总结一下学习的历程。 本章将从OpenGL ES的基础讲起。总结有关OpenGL ES的基本常识。原创 2016-08-03 17:19:51 · 437 阅读 · 0 评论 -
Android USB Host开发笔记
最近在做有关Android TV端使用USB外设进行用户交互方面的开发。总结一下开发过程中的困惑、解决方案以及开发的整个过程:一、做USB Host开发前的准备工作: 1. “工欲善其事必先利其器”,先简单了解一下USB Host: 1> USB Device:从硬件角度看就是一个带有USB Client控制器的设备;从软件角度看,就是一个挂在USB总线上的一个普通意义上的设备原创 2016-06-30 17:41:25 · 1066 阅读 · 0 评论 -
初识Android Studio中的Gradle
最近碰到一些关于gradle的小问题,然后在网上看了一些资料。整理了一下:1、什么是gradle? gradle本身也是一种编程语言。他的特点是(来科普一下^_^): 1>基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。(反正就是一种特殊的配置语言) 2>支持Java、Groovy、Scale中使用,而Android目前开发原创 2016-06-14 14:39:22 · 391 阅读 · 0 评论 -
Retrofit 简单使用之二
上一篇简要总结了一下Retrofit的最基本用法,这一篇详细总结各种注解的用法。原创 2016-10-10 09:35:34 · 331 阅读 · 0 评论 -
将App设置为设备的启动应用
最近在做Android TV盒子的有关项目碰到一个问题,需要将自己写的App设置为盒子启动后最先显示在电视上。原创 2016-11-03 09:40:18 · 1277 阅读 · 0 评论 -
Android TV横向滚动网格布局——RecyclerView的使用
最近在做一个Android盒子的项目,主要是Launcher有一个横向滚动的界面。主要使用的是RecyclerView。总结一下。原创 2016-11-04 16:11:00 · 8651 阅读 · 2 评论 -
ADB常用命令之二——随手记
之前整理过一批基本adb命令了,最近又用到了一些比较好的。随手记录一下。原创 2017-01-06 16:52:18 · 276 阅读 · 0 评论 -
图片加载神装——Picasso
已经用过Square公司的很多重量级开源框架了(OkHttp, Retrofit),现在来了解一下加载图片的重量级框架!异步缓存加载图片只需一步~~~原创 2017-01-06 16:32:48 · 551 阅读 · 0 评论