-
Android 航线剖面图自定义控件绘制实现
本文介绍Android平台飞行航线剖面图自定义控件绘制的实现,给出实现效果截图,Java和Kotlin具体实现代码。一、实现效果0m水平线为起点的地形高度,起点和降落点图标固定绘制,途经点超过6个的时候用正方形色块表示,避免途径点过多的时候显示图标的宽度不足,地形区域使用渐变色填充。二、Java代码实现代码详细实现逻辑已在代码注释中说明,此处不做赘述。... -
SupervisorScope 与 viewModelScope 的对比:理解它们的用例和区别
基本概念|BasicConceptsSupervisorScopeSupervisorScope是Kotlin协程中的一个特殊作用域,具有以下特征:•使用supervisorScope函数创建•默认不依附于任何生命周期组件•提供异常隔离机制示例代码|Example:suspendfunperformParallel... -
Android WebView 秒开实战
写在前面最近组里做新的Web容器的,一次承载多个H5页面,以实现左右切换,默认展示主会场页,并要达到提升打开率的目标。要达到这个目标,那势必要从加载优化入手,缩短页面的打开时间。优化的点包括但不限于,Activity初始化、ViewPager和Fragment的初始化、WebView的初始化等等。本篇文章给大家分享下WebView秒开的尝试,通过这篇文章... -
Kotlin Multiplatform 跨平台支持鸿蒙
引言在国内,移动端支持鸿蒙平台已经不是什么新鲜事了。但对于公司来说,是否要支持鸿蒙平台,主要考虑的是成本和收益。收益很明确,挽留华为用户和防止华为用户丢失,以这个为底线,如果能带来新的用户,那当然最好。对于成本,也很明确,把在Android和iOS上做的事情,在鸿蒙平台上重新做一遍,以前1人/10天,现在加上熟悉平台成本,1人/12天。以这个粗略评... -
如何保护 Android 应用程序的 API 密钥
保护Android应用程序的API密钥可以确保用户信息的隐私并防止对API的未授权访问。这一点很重要,每个应用程序都应该确保其API密钥的安全性,以防止服务被滥用。注意:黑客总是有办法对应用程序进行逆向工程并获取密钥,我们只能尽最大努力增加他们的难度。这里展示两种简单且有效方法来最大限度地保护存储在应用程序中的密钥。第一种方法:使用... -
了解 Jetpack Compose 中的重组
JetpackCompose通过使AndroidUI具有声明性和响应性,彻底改变了我们构建AndroidUI的方式。Compose中最重要的概念之一是重组。这个概念对于理解UI元素如何有效更新以响应状态变化至关重要。在本文中,将探讨什么是重组、它在JetpackCompose中的工作原理,并提供示例来演示其行为。什么是重组?在... -
Android 包体的清道夫
一.背景随着业务需求不断地进行迭代,同时功能也在不断地变更,随之而来的就是无用功能没有被及时移除,从而造成安装包体积不断变大。同时,我们所依赖的三方库,无论是内部库还是外部库,也会或多或少存在没有使用的代码和资源。依赖库越多,无用代码和资源也会越多。二.安装包产物构成Android安装包的产物构成,主要是Dex、Resource、Assets、... -
进程、线程、协程,十分钟带你掌握!
进程、线程和协程是程序设计中三个重要的知识点,这篇文章,我们将从概念、通信方式、区别和优缺点等方面深入探讨它们。基本概念进程进程(Process)是操作系统中资源分配和调度的基本单位。每个进程有自己的内存空间和系统资源,是一个独立运行的程序实例。进程之间是相互隔离的,通常一个进程的崩溃不会影响到其他进程。线程线程(Thread)是进程中的一个执行路... -
理解 Kotlin 中的协程生命周期
Kotlin的协程提供了一种强大的方式来管理并发和异步编程。要有效地使用它们,理解协程的生命周期至关重要。本文将探讨协程生命周期,重点介绍协程的Job状态、状态之间的转换,并通过实际示例说明每个状态的效果,包括启动嵌套协程等。什么是协程?协程是轻量级的线程,可以在不阻塞主线程的情况下执行异步任务。它们提供了一种编写非阻塞代码的方式,使代码易于阅读和... -
【多线程与并发】CompletableFuture用法
原理CompletableFuture是Java8引入的一个新的并发编程工具,用于处理异步任务和异步编程。它提供了一种简单、强大和灵活的方式来处理异步计算、响应式编程和任务组合。CompletableFuture相比于传统的Future接口,提供了更强大的功能和更好的编程体验。CompletableFuture的核心原理可以概括为以下...