首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Android开发
AnRFDev
创建于2021-05-11
订阅专栏
Android应用开发,经验整理,知识收集 https://an.rustfisher.com
等 3 人订阅
共20篇文章
创建于2021-05-11
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Android现有工程使用Compose
这是我参与11月更文挑战的第2天。Android现有工程使用Compose 看了Compose的示例工程后,我们也想使用Compose。
Android gradle简介
Android里的gradle怎么用?我们已经新建了一个Android应用工程后,可以看到有好几个gradle文件。本文来简要介绍工程中的gradle文件。
Java多线程
操作系统可以在同一时刻运行多个程序。例如一边播放音乐,一边下载文件和浏览网页。操作系统将cpu的时间片分配给每一个进程,给人一种并行处
Android WorkManager定时任务
App有时可能需要定期运行某些工作。例如,可能要定期备份数据、上传信息到服务器,定期获取新的内容等等。 在app运行期间,我们使用Handler也可以完成定期的功能。在这里我们介绍WorkManage
Android WorkManager使用入门
WorkManager使用入门 WorkManager提供了任务调度功能,我们可以对工作进行标记或命名。 我们用一个示例来演示如何使用WorkManager。本文使用Kotlin。
Android ConstraintLayout 使用链控制线性组
链是一组视图,这些视图通过双向位置约束条件相互链接到一起。链中的视图可以垂直或水平分布。 Spread:视图是均匀分布的(在考虑外边距之后)。这是默认值。 Spread inside:第一个和最后一个视图固定在链两端的约束边界上,其余视图均匀分布。 Weighted:当链设置为…
Android ConstraintLayout 构建自适应界面
ConstraintLayout 可让您使用扁平视图层次结构(无嵌套视图组)创建复杂的大型布局。它与 RelativeLayout 相似,其中所有的视图均根据同级视图与父布局之间的关系进行布局,但其灵活性要高于 RelativeLayout,并且更易于与 Android Stu…
Android OkHttp + Retrofit 断点续传
下载文件时,可能会遇到一些意外情况,比如网络错误或是用户暂停了下载。 再次启动下载,如果又要从头开始,会白白浪费前面下载好的内容。 断点续传功能可以从上次停止的地方继续下载文件。 Range 是一个请求首部,告知服务器返回文件的哪一部分。 在一个 Range 首部中,可以一次性…
Android OkHttp + Retrofit 下载文件与进度监听
下载文件是一个比较常见的需求。给定一个url,我们可以使用URLConnection下载文件。 使用OkHttp也可以通过流来下载文件。 给OkHttp中添加拦截器,即可实现下载进度的监听功能。 获取并使用字节流,需要注意两个要点,一个是服务接口方法的 @Streaming 注…
Android MediaPlayer 音频倍速播放,调整播放速度
现在市面上的很多音视频App都有倍速播放的功能,例如把播放速度调整为0.5、1.5、2倍等等。 从Android API 23 (Android M)开始,MediaPlayer支持调整播放速度。 使用的方法是setPlaybackParams,传入一个代表播放属性的类Play…
Android 使用URLConnection下载音频文件
有时候我们会需要下载音频文件。这里提供一种思路,将在线音频文件通过流写到本地文件中。 使用URLConnection来建立连接,获取到的数据写到文件中。 URLConnection建立连接后,可以获取到数据长度。由此我们可以计算出下载进度。 启动下载,即启动线程。 值得注意的是…
Android MediaPlayer 播放音频
主要介绍使用MediaPlayer播放音频的方式。关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPlayer 基础简介。 为了方便表达,定义变量名为mediaPlayer。 可以直接 new MediaPlayer,也可以用MediaPlay…
Android MediaPlayer 基础简介
简单介绍MediaPlayer的基本概念,状态,常用的方法与监听器。 MediaPlayer类可以用来播放音视频文件,或者是音频流。开发者可以用它来播放本地音频,或者是网络在线音频。 MediaPlayer属于android.media包。 播放控制由状态机控制。在日常生活中,…
Android mmap 文件映射到内存介绍
Android开发中,我们可能需要记录一些文件。例如记录log文件。如果使用流来写文件,频繁操作文件io可能会引起性能问题。 为了降低写文件的频率,我们可能会采用缓存一定数量的log,再一次性把它们写到文件中。如果app异常退出,我们有可能会丢失内存中的log信息。 mmap是…
Android OkHttp + Retrofit 取消请求的方法
在某一个界面,用户发起了一个网络请求,因为某种原因用户在网络请求完成前离开了当前界面,比较好的做法是取消这个网络请求。对于OkHttp来说,具体是调用Call的cancel方法。 要取消一个请求,OkHttp中可以使用cancel方法,参考。 OkHttp的request对象有…
Android - 条纹进度条实现,调整view宽度仿进度条
这斑斓的进度条,如果要自己画实在是劳民伤财。于是请美工切了一张素材(样例)。 如果用shape或者.9图片不太好处理这个条纹。转变思路,放置2张图片。一张作为背景(底,bottom),一张作为进度条图片(cover)。 进度改变时,改变上面图片的宽度。 这就要求上面的图片是圆角…
Android - JoystickView 虚拟手柄,控制盘,自定义UI
在一些手机游戏中,玩家可以通过虚拟控制盘来控制游戏角色的行动。 无人机和玩具操控App中也有这一类控制盘的应用。 用自定义View的方式来实现类似手柄的控件。 用自定义View的方式实现这个控制盘。创建TouchView。 控制盘的基本要求是跟随手指做出反应。为了获取到手指触屏…
Android SparseArray 原理解析
SparseArray存储的是键值对,以int作为key,Object作为value。Sparse有稀疏、缺少的意思。SparseArray应用场景是相对稀少的数据,一般是几百以内。 SparseArray并不像HashMap采用一维数组+单链表和二叉树结构,而是采用两个一维数…
Android - 认识Context
app开发中,我们需要使用app的资源,比如文字、图片,Activity、Service或者broadcastReceiver等等。时常也会用到getApplicationContext()来获取一个Context对象。那么这个Context到底是什么呢? 我们一起来认识一下A…
Android Intent 传递数据大小限制
在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,…