首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Android 开发文章合集
开发者如是说
创建于2021-05-12
订阅专栏
Android 相关的文章
等 20 人订阅
共45篇文章
创建于2021-05-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
彻底搞懂 Behavior
Behavior 是谷歌 Material 设计中重要的一员,用来实现复杂的视觉联动效果。本文主要介绍其工作原理和事件如何分发。
较个真!Matirx 单例写法的线程安全问题
我正在参加「掘金·启航计划」 最近看了看 Matrix 的源码,无意间看到一个单例的写法。因为这种写法比较特殊,所以花了些时间认真看了下。发现还真的有点问题。当然,其实问题也不大。因为这种单例的问题在
实战 Android 升级目标版本到 30 过程中遇到的问题及解决办法
应谷歌应用商店要求,自11月1日起,所有上传到谷歌应用商店的应用将被强制要求升级目标 API 版本到 30, 这里记录我升级目标版本到 30 的过程中遇到的问题。
使用 APT 开发组件化框架的若干细节问题
使用 APT 实现注解扫描,如果不是组件化的应用场景,并不需要实现上述缓存和插桩的逻辑,比如 ButterKnife,只需要调用一下对应的方法,完成 APT 相关代码的自动装载即可。
异步、非阻塞式 Android 启动任务调度库
节前面试的时候被问到 Android 启动任务依赖怎么做调度。当时随口给了一个方案,后来想想觉得有意思就自己花了一天的时间写了一个。
BitmapPool 了解吗?Glide 是如何实现 Bitmap 复用的?
本文带你了解下 Glide 的 Bitmap 加载和复用流程设计,带你了解 BitmapPool 以及 Bitmap 使用过程中的各种小细节~
拥抱新的交互方式,在 Android 中应用 MVVM
不知不觉维护自己的几个开源库已经快两年了,现在我已经成功地将它们应用到了我的多个产品上面,比如 言叶。通过使用这些开源库能够大大降低开发的复杂度,为我节省大量的代码,提高效率。前些日子忙着做应用的新特性,现在终于有了些许时间。这里介绍下我的开源库,以及我做个人开发过程中如何通过…
个人开源库的一些更新,兼谈Jetpack和Kotlin给Android开发带来的变化
前段时间,我开发完成了新的软件 移动工具箱。最近,我准备把开发过程中总结的一些东西沉淀到自己个人开源的几个库中。最新的一些更新中运用了 Kotlin 和 Jetpack 的一些语法特性,故此总结一下。Jetpack 和 Kotlin 出来已经很久了,然而很多应用开发还停留在 M…
加固了就安全了?几个措施让你的 Android 应用更安全
最近新开发了一款工具类型的软件 移动工具箱,然而某天下午忽然群里来了一个不速之客说我的软件被破解了。虽然,该软件无需付费并且没有广告(很良心 :) ),也进行了安全加固,但是还是很轻易得被别人破解了。现象是,启动页换成了别人的页面,需要用户点击页面上的按钮分享几次破解者的信息才…
一个高性能、功能丰富、可自定义的 Android 相机库 iCamera 的设计和开发过程
去年年初的时候写过一篇文章 《CameraX:Android 相机库开发实践》,那时我想自己写一个 Android 相机库,但是因为名字和谷歌关放的 CameraX 冲突了,所以现在我将自己的项目改名为 iCamera. 之前的文章中也交代过一些 Android 相机库的背景,…
跨平台、多用户协作的移动应用 (安卓+iOS) 多语言管理工具
TranslateMyApp 项目是我之前为了在 Android 应用中集成多语言而开发的一个工具,当时主要为了解决应用的词条的多语言翻译问题,然而实际应用的时候发现起存在诸多的不便之处。最近当我开发 言叶APP 的时候,为了减少多语言维护的工作量,重新开发了这个应用。现在它具…
用这个库解决你的图片压缩和加载问题
在 Android 应用中,图片是占用内存资源比较多的一部分。如何在应用当中加载并处理图片的同时又能够保证程序响应的效率呢?你可以使用我开发的这个库:Compressor。 随着新版本 1.3.5 的发布,这个库已经支持了非常多的功能,并且支持在 Kotlin 协程中获取压缩的…
2020 年,我这样在项目中使用 MVVM
最近看到了几篇与 Jetpack MVVM 有关到文章,使我不禁也想淌一下这场混水。我是在 2017 年下半年接触的 Jetpack 的那套开发工具,并且后来一直将其作为开发的主要框架。在这段时间的使用过程中,我踩过一些坑,也积累了一些经验,为了将其推广到其它到项目中又专门封装…
计算机视觉在 Android 中的一些应用
不管你是否从事计算机视觉相关的工作,了解这方面的内容总是好的,因为即使你现在的工作与 AI 无关,采用一些开放的 API 仍然有可能让你的应用做得更好。比如,百度开发平台就提供了许多 AI 相关的 API,像当下比较受欢迎的“白描”等应用,其实就是使用了百度的 API。所以,你…
CameraX:Android 相机库开发实践
前段时间因为工作的需要对项目中的相机模块进行了优化,我们项目中的相机模块是基于开源库 CameraView 进行开发的。那次优化主要包括两个方面,一个是相机的启动速度,另一个是相机的拍摄的清晰度的问题。因为时间仓促,那次只是在原来的代码的基础之上进行的优化,然而那份代码本身存在…
开源一个 Android 图片压缩框架
在我们的业务场景中,需要使用客户端采集图片,上传服务器,然后对图片信息进行识别。为了提升程序的性能,我们需要保证图片上传服务器的速度的同时,保证用于识别图片的质量。整个优化包括两个方面的内容: 图片压缩的优化:基于拍摄的图片和从相册中选择的图片进行压缩,控制图片大小和尺寸。 在…
Android 插件化框架 DynamicLoadApk 源码分析
DynamicLoadApk 应该算是 Android 插件化诸多框架中资历比较老的一个了。它的项目地址在:dynamic-load-apk。该项目运行之后的效果是,使用 Gradle 编译出插件包和宿主包,都是以 APK 的形式。安装宿主包之后,通过 ADB 将插件包 pus…
在 Android 中使用 JNI 的总结
最近在研究 Android 相机相关的东西,因为想要对相机做一个封装,于是想到要提供支持滤镜和图像动态识别相关的接口。在我找到一些资料中,它们的实现:一个是基于 OpenGL 的,一个是基于 OpenCV 的。两者都可以直接使用 Java 进行开发,受制于 Java 语言的限制…
Android 高级面试-5:四大组件、系统源码等
对象的大小。Intent 中的 Bundle 是使用 Binder 机制进行数据传送的。能使用的 Binder 的缓冲区是有大小限制的(有些手机是 2 M),而一个进程默认有 16 个 Binder 线程,所以一个线程能占用的缓冲区就更小了(有人以前做过测试,大约一个线程可以占…
Androd 应用启动过程的源码分析
在之前的文中,我们已经了解过了 Android 系统启动的过程。系统启动之后会由 PMS 安装系统应用,并启动 Launcher,也就是桌面程序。然后,我们安装的程序的图标将会显示到桌面上面。 所谓应用启动过程分成两种情形,一个是应用进程已经建立,一种是应用进程没有建立的情况下…
下一页