排序
Android那两个你碰不到但是很重要的类之ActivityThread
Android那两个你碰不到但是很重要的类之ActivityThread 前言 上篇文章我们聊了些Android里那些我们平时碰不到但很重要的类ViewRootImpl,这一篇我们就来看看另外那个类ActivityThread。 通过本...
JNI 编程上手指南之异常处理
JNI 程序中的异常分为以下几种: Native 程序原生异常,一般通过函数返回值和 linux 信号处理, C++ 中也有 try catch 机制解决异常,不是本文重点 JNIEnv 内部函数抛出的异常,一般通过返回值...
Flutter 最有用的 5 个优秀的依赖包
Flutter 最有用的 5 个优秀的依赖包 前言 这个插件在开发过程中特别有用 我希望您做得很好,在本文中,我将介绍一些最有用的 dev_dependencies 依赖项。但是在我们继续之前,让我们首先弄清楚为...
Flutter和Android原生通信的三种方式
简介 Flutter虽然有强大的跨平台能力,但是其跨平台主要体现在UI界框架上,对于一些Android原生的功能如:获取电池电量,访问手机蓝牙,定位等硬件信息显得有些不足心。还是需要调用Android原生...
Camera2 同时预览多个摄像头,CameraX不行?
本来是想通过CameraX实现同时预览多个摄像头,通过官网文档介绍,在CameraX 1.3 后通过ConcurrentCamera运行多个摄像头,但实际在小米10(Android 13)运行,报错当前设备不支持ConcurrentCamera...
mac上编译skia
1. 在mac上编译skia步骤。 下载skia源码 git clone https://skia.googlesource.com/skia.git 安装依赖项:在构建Skia之前,您需要安装一些依赖项。最简单的方法是使用Homebrew包管理器。运行以...
Android Kernel 编译与调试指北
Android Kernel 编译与调试指北 上一篇文章介绍了在wsl2环境下编译AOSP并将其运行到Cuttlefish中,本篇文章依赖于上文Cuttlefish,请按照顺序食用本指北 环境 本指北基于以下代码和环境编写 OS ...
Jetpack Compose(第二趴)——Compose 基础知识(上)
一、准备工作 JetPack Compose是一款新型工具包,旨在帮助简化界面开发。该工具包将响应式编程模型与简洁易用的Kotlin编程语言相结合,并采用完全声明式的代码编写方式,让您可以通过调用一些列...
推送服务接入指导(HarmonyOS篇)
æ¶Âæ¯æ¨éÂÂä½Â为Appè¿ÂèÂ¥æ¥常使ç¨çÂÂç¨æÂ...
我的朋友之管理数据类型的小程序的思路
苦恼的朋友 最近,我的朋友非常没有精神,经常闷闷不乐,我感觉他的状态很不好,于是关切他到底怎么了,然后他就和我说了他遇到的困惑 他:今年年初开始,我一直在学习编程,眼看着现在已经6月...
实战!如何在 Jetpack Compose 中拥有一个与众不同的 Modifier
前言 前不久,在Stack Overflow上用自己半瓢水的动画知识,帮助提问者解决了一个问题 的同时,看到很多眼生的方法,比如composed,于是顺便学习了一波自定义 Modifier。回过头来总结时,发现解决...
Android12存储空间计算的一个误区
问题背景 在Android12平台上,恢复出厂设置后,已使用空间偏高,空间使用率为28/128=21.9%,产品需要控制在11%以内 源码分析 当前页面的源码位于packages/apps/Settings/src/com/android/settin...
图解 Binder:内存管理
这是一系列的 Binder 文章,会从内核层到 Framework 层,再到 Java 层,深入浅出,介绍整个 Binder 的设计。详见《图解 Binder:概述》。 本文基于 Android platform 分支 android-13.0.0_r1 和...
OpenGL ES教程——帧缓冲
在OpenGL的渲染管线中,几何数据和纹理通过一系列变换和测试,最终被渲染成屏幕上的二维像素。那些用于存储颜色值和测试结果的二维数组的几何被称为帧缓冲区(frame buffer) 用于写入颜色值的...
Kotlin 函数接口与普通接口的区别
记一次编写Demo时SonarLint提示警告而关注到的kotlin1.4新增的接口声明方式. // SonarLint警告: Make this interface functional or replace it with a function type. interface GitHubService...
JNI 编程上手指南之 Native 访问 Java
本文接着介绍如何在 C/C++ 中访问 Java,主要从以下几个方面来讲述: 访问 Java 的成员变量,包括了实例成员和静态成员 访问 Java 的方法,包括了成员方法和静态方法 1. Native 访问 Java 成员...
Android Hilt:强大的依赖注入框架,高级传参解个耦?
一、Hilt 干依赖注入的 Hilt是干嘛的 Hilt,一个依赖注入框架,谷歌搞出来的,基于Dagger,但是更加简洁易用。 什么是依赖注入 (Dependency Injection) 依赖注入是一种设计模式。主要就是解耦...
一文搞懂Android jetpack 状态存储
读完这篇文章,你会知道什么? 为什么 ViewModel#onClear 执行在 Activity#onDestory 之前,但生命周期比 Activity 长 LifecycleObserver 是如何兼容 LifecycleEventObserver 和 DefaultLifecyc...
十分钟带你写一个Android Websocket 第一篇
我正在参加「掘金·启航计划」 1、前言 通过观察我的更新频率,你可能会得出我是一个鸽子的结论。不过请听我狡辩一下。最近我沉迷于编写服务器端的应用,因为虽然我们说Android使用Java,但实际...
【FlutterUtilCode】Flutter工具篇之PathUtils
前言 FlutterUtilCode 是一个 Flutter 工具类集合插件,封装了常用的工具类和函数,方便开发者调用。 本篇是 Flutter工具篇之PathUtils,系列文章内容主要介绍插件中工具类的功能、用法和代码实...