排序
Android 视图绑定 ViewBinding
ViewBinding 官网 一、配置 build.gradle 文件配置 android { //... viewBinding { enabled = true } //或者gradle plugin 7.0以上也可以用如下写法 buildFeatures { viewBinding true } } 如果...
Java小技巧:利用局部函数来隐藏和保护函数
有过一些开发经验的开发者应该都知道:尽量用局部变量,尽可能避免用全局变量。过于暴露的变量可能被滥用而导致安全问题,对于代码维护也造成一些麻烦(得仔细检查该变量是不是被很多地方用到,...
HashMap原理
HashMap 基本知识点 hahsMap 负载因为默认为0.75,作用是用于决定什么时候扩容、 默认数组大小为16,并且数组大小永远为2的倍数,即使我们实例化时候传入非2的倍数,map内部也会找一个最接近的2...
DES算法CFB OFB模式介绍
综合了几篇文章的内容,以C#的计算结果为参考标准,总结出CFB模式的流程(OFB模式先占坑,未来再填) CFB模式 密文反馈(CFB,Cipher feedback)模式与ECB和CBC模式只能够加密块数据不同,可以将...
JNI 编程上手指南之多线程
核心要点 JNI 环境下,进行多线程编程,有以下两点是需明确的: JNIEnv 是一个线程作用域的变量,不能跨线程传递,每个线程都有自己的 JNIEnv 且彼此独立 局部引用不能在本地函数中跨函数使用,...
JNI 编程上手指南之 JNI 调用性能优化
为什么要做性能优化 Java 程序中,调用一个 Native 方法相比调用一个 Java 方法要耗时很多,我们应该减少 JNI 方法的调用,同时一次 JNI 调用尽量完成更多的事情。对于过于耗时的 JNI 调用,应...
JNI 编程上手指南之从内存角度再看引用类型
1. Java 程序使用的内存 Java 程序使用的内存从逻辑上可以分为两个部分: Java Memory Native Memory Java Memory 就是我们的 Java 程序使用的内存,通常从逻辑上区分为栈和堆。方法中的局部变...
如何仿一个抖音极速版领现金的进度条动画?
效果演示 不仅仅是实现效果,要封装,就封装好 看完了演示的效果,你是否在思考,代码应该怎么实现?先不着急写代码,先想想哪些地方是要可以动态配置的。首先第一个,进度条的形状是不是要可以...
一篇文章了解Kotlin的泛型
Kotlin 泛型类型 Kotlin 的泛型特性允许我们编写出更加灵活和通用的代码,提高了代码的可重用性和类型安全性。 本文将介绍 Kotlin 中的四种泛型类型 类型参数 星号投影 型变 泛型限制 类型参数 ...
十分钟带你写一个Android Websocket 第二篇
我正在参加「掘金·启航计划」 可以先阅读该系列上一篇文章 1、十分钟带你写一个Android Websocket 第一篇 1、前言 上一篇挖的坑重连策略,这也是WS的重中之重,让我们一起来看下吧。(咕咕咕)...
android 蓝牙Classic Bluetooth Mode模式的实践(二)
首先我们来回顾一下Classic Bluetooth Mode(传统蓝牙模式): 是 Android 操作系统中最常见的蓝牙模式之一。它支持传统的蓝牙设备连接和数据传输,包括蓝牙耳机、蓝牙键盘、蓝牙音箱、蓝牙打印...
Jetpack Compose(第二趴)——Compose 基础知识(下)
书接上文,咱们继续 9、创建高效延迟列表 现在,我们来让名称列表更真实。到目前为止,你已经在Column中显示了两条问候语。但是,它可以处理成成千上万条问候语吗? 更改Greetings形参中的默认...
Flutter 项目结构 初始项目 分析
本文主要讲述新建一个Flutter项目的各个项目结构,并配合初始项目,来了解Flutter的各种状态,以及常用类解析 项目结构解析,以及各个文件的作用 新创建一个Flutter项目,项目接口如下图所示 .d...
android google 内购支付最新版本 6.0结算库 接入教程
前言 各位同学 大家好有段时间没有个大家更新文章 ,最近在更新google的最新结算库 。所以就在这里分享给废话不多说。 官方文档地址 Google结算库 需要的依赖 def billing_version = '6.0.0' im...
OpenGL7-第一个3D图形
1、画立方体 之前我们绘制的都是二维图形,今天开始我们将进入三维图形的绘制,三维图形是在二维(XY轴)平面基础上,增加了深度(Z轴),所以三维图形更具有空间感。 二维变三维,图形的顶点个数会...
图解 Binder:ServiceManager
ServiceManager 在 Android 系统中扮演了极其重要的角色,它是所有系统服务的注册中心。许多系统服务(比如 ActivityManagerService、WindowManagerService 等)都会将自己注册到 ServiceManage...
从一个线上 Android Bug 回看 Fragment 的基础知识
公司的项目在最近遇到了一个与 Fragment 有关的线上 crash,导致这个问题的根本原因比较复杂,导致修复方案的可选项非常有限,不过这个问题的背景、crash 点,以及修复过程都非常有趣,值得记录...
Android实现一个可拖拽带有坐标尺的进度条
拿到上边的UI效果图,给我的第一印象就是这实现起来也太简单了吧,SeekBar轻轻松松就搞定了,换个thumb,加个渐变不就完成了,说搞就搞,搞着搞着就抑郁了,底部坐标尺还能搞,等比例分割后,在...
Android Compose UI实战练手—-Google Bloom欢迎页
1.概述 在之前的博客中,我已经介绍了Compose 的基础UI和布局组件,现在我们就利用这些基础UI和布局组件去做一个实战项目。Bloom是Google提供的一个假想产品,我们可以作为练手项目使用,这个产...
[译] Jetpack Compose 稳定性的解释
文章作者:Ben Trengrove 原文链接:Jetpack Compose Stability Explained | by Ben Trengrove | Android Developers | Medium ©️一切版权归作者所有,本译文仅用于技术交流请勿用于商业用途...