XiuYuanTech

Read The Fucking Source Code

[JNI] NDK SO Package Optimization

STL的使用 对于C/C++的library,引用方式有2种: 静态方式(static) 动态方式(shared) 其中,静态方式在编译时会将用到的相关代码直接复制到目的文件中;而动态方式则会将相关的代码打成so文件,以便多次引用。由于编译器在编译时并不能知道所有被引用的地方,所以同时会打入了很多不相关的代码。 如果项目中引用library的函数较多时,用动态方式可以避免多次拷贝......
JNI


[SpringBoot] SpringBoot3 + Kotlin 踩坑指南

Kotlin 是一个基于 JVM 的编程语言, 它的简洁、便利早已不言而喻; Kotlin 能够胜任 Java 做的所有事; SpringBoot3于2022年11月24号第一版正式发布后, 带来了许多令人兴奋的新特性和改进。 环境变化 JDK Spring Boot 3.0以上 需要Java 17,并且兼容 Java 20(包括 Java 20)。还需要Spring Framewor......

[Flutter] Study Flutter Componentization‌‌

Flutter 是 Google 开源的应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用。 Flutter 只要一套代码兼顾Android、iOS、Web、Windows、macOS和Linux六个平台。 Flutter 由Dart语言强力驱动,助力高效构建全平台应用。 前言 组件化一直是移动端比较流行的开发方式,有着编译运行快,业务逻辑分明,任务划分清晰等优点。......

[Android] Study Jetpack Compose

Jetpack Compose 是用于构建原生 Android 界面的新工具包。它使用更少的代码、强大的工具和直观的 Kotlin API,可以帮助您简化并加快 Android 界面开发,打造生动而精彩的应用。它可让您更快速、更轻松地构建 Android 界面。 Compose的优势: 声明式:直接描述 UI 应该呈现的样子,而不是一步步说明如何实现。 简洁性: 减少模板代码,使得代码更加......

[日常] 新房装修指南

硬装是指那些固定在房屋结构中的装饰物,通常包括墙面工程(如墙漆、瓷砖、壁纸等)、地面工程(如地板、地砖等)、顶面工程(如吊顶、装饰面等)、水电气暖(如供水、排水、电路、燃气等)以及定制家具(如橱柜、门、吊柜等)。 软装则是指那些可以移动或更换的装饰物,包括家具和小电器(如沙发、餐桌椅、灯具等)、布艺用品(如窗帘、床上用品等)、家居装饰品(如装饰画、绿植等)。 前期准备 参考当地市场价......

[Android] MVI Development Architecture

MVI(Model-View-Intent)‌:一种基于响应式编程的架构模式,通过分离数据模型(Model)、视图(View)和用户意图(Intent)提升代码可维护性和可测试性‌。 前言 由于 MVVM 架构的状态与行为的管理混乱导致多人协同开发过程或者历史问题或架构问题导致直接操作 ViewModel 中的数据源导致可能的数据混乱。 所以 MVI 架构本质就是在 MVVM 架构的基础......

[Android] Learn And Use Jetpack

Jetpack 包含一系列 Android 库,它们都采用最佳做法并在 Android 应用中提供向后兼容性。 Jetpack 库可以单独使用,也可以组合使用,以满足应用的不同需求。 例如: WorkManager - 满足您的后台调度需求。 Room - 实现数据存储持久性。 Navigation - 管理应用导航流程。 CameraX - 满足相机应用需求。 实现方式 所有 Jetp......

[Android] How to customise gradle plugin

Gradle 和 Gradle 插件是两个概念, Gradle 插件的本质就是抽取高度模块化的逻辑,以便更高效地进行复用。 Gradle 只是提供了一个构建流程。 而其他可复用的 Task(例如编译 Java 工程、编译 Android 工程等), 是通过应用 Gradle 插件来获取的。 Gradle: 构建工具,提供核心构建流程 Gradle 插件: 本质上是可复用的 task,依赖于......


[Android] Okdownload 下载框架学习

learn opensource okdownload

OkDownload是一个android下载框架,是FileDownloader的升级版本,也称FileDownloader2; 是一个支持多线程,多任务,断点续传,可靠,灵活,高性能以及强大的下载引擎。 对比FileDownloader的优势: 单元测试覆盖率很高,从而保证框架的可靠性。 简单的接口设计。 支持任务优先级。 Uri文件转存储输出流。 核心类库更加单一和轻量级。 更灵活的......

[Android] Android Developing Guideline

Google官方Java代码风格参考规范链接, 中文翻译参考版链接。 Android开发规范 - XiuYuan的技术博客 hljs.initHigh......