写点什么

android

84 人感兴趣 · 4260 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/21/21b7fc657aa7215107d744eaf4a44c1d.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android 开发中如何进行单元测试?

单元测试是软件开发中的一种测试方法,用于验证代码中的最小可测试单元(通常是函数或方法)是否按预期工作。单元测试通常由开发人员编写,旨在隔离和测试代码的特定部分,以确保其功能正确。单元测试通常是自动化的,可以通过运行测试套件来快速检查代码的正

https://static001.geekbang.org/infoq/28/28f13013063dd12e05dfe026fddce5b6.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

请不要再把 String 或 Style 直接传递给自定义的组件了!

经常在各大社群中看到关于“如何自定义一个组件”这样的问题讨论。在探讨的过程中,经常会涉及到“如何更好的设置自定义组件中的文本”的问题。那么这篇文章让我们一起来聊聊。

https://static001.geekbang.org/infoq/36/363bb278d702f8855a3d9a59441ec59b.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android 开发中如何进行单元测试?

在Android开发中,单元测试是非常重要的一环,它可以帮助开发者验证代码的正确性,提高代码质量。在Android中,常用的单元测试框架包括JUnit和Mockito。

【Android】深入 Binder 拦截

用户头像
iofomo
12-06

基于底层动态拦截技术,实现对Android平台下应用进程Binder通信协议的动态分析和拦截。

https://static001.geekbang.org/infoq/f2/f2f49904cb6da734cade24d817f609c1.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android 下 Linux 创建进程的姿势(下)

本文继续介绍Linux下创建进程的其他几种方式,同时主角vfork也将登场,让我们来看看底层的原理及实现。

https://static001.geekbang.org/infoq/50/50a899251d146ed4c89697e4dea78f41.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Tetris Native 揭秘|有道词典动态化运营引擎

Tetris Native是有道词典端侧动态渲染引擎,目前已作为多个业务的运营投放容器,支持跨端UI动态化发布及多种样式,助力有道词典流量变现。《Tetris Native揭秘》系列文章将详细介绍Tetris Native的设计理念和详细落地方案。

https://static001.geekbang.org/infoq/91/917a66e01c20c986a8ff9a25b4901f3a.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

使用 promise 重构 Android 异步代码

业务当中写Android异步任务一直是一项挑战,以往的回调和线程管理方式比较复杂和繁琐,造成代码难以维护和阅读。在前端领域中JavaScript其实也面临同样的问题,Promise 就是它的比较主流的一种解法。 在尝试使用Promise之前我们也针对Android现有的一些异步做

https://static001.geekbang.org/infoq/dd/ddfde98bc4ba1c36ff8edc29ef1f8cca.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android 下 Linux 创建进程的姿势(上)

最近在看Android底层源码的时候发现fdsan这个检测工具,其内部用了vfork进行子进程的创建,今天我们来学习下

https://static001.geekbang.org/infoq/08/08742c4a209ed1f500369319cb2cc979.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Ubuntu22.04 系统搭建环境编译 AOSP?

在Ubuntu 22.04系统上搭建环境编译AOSP(Android Open Source Project)需要进行以下步骤:

https://static001.geekbang.org/infoq/08/08742c4a209ed1f500369319cb2cc979.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

NetMock 简介:简化 Java,Android 和 Kotlin 多平台中的 HTTP 请求测试?

NetMock是一个用于简化Java、Android和Kotlin多平台中HTTP请求测试的工具。它提供了一种简单而强大的方式来模拟和验证HTTP请求和响应,以便在测试中进行准确和可靠的结果验证。

https://static001.geekbang.org/infoq/ce/ce2bd08fc743eda9ceeea66313ab3d5b.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Vulkan 同步

在某些复杂场景和多线程优化过程中难免会遇到资源竞争的问题,本文同步基础到原语机制,再进而介绍隐式同步控制,帮助开发者保证多线程安全访问数据

https://static001.geekbang.org/infoq/dd/ddfde98bc4ba1c36ff8edc29ef1f8cca.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Vulkan 并发机制

Vulkan是新一代图形(graphics)API,本篇会介绍Vulkan的多线程设计机制,围绕底层实现出发,并通过实践提供多线程优化建议

关于 Android 突破非 SDK 接口限制的延伸

用户头像
XCG00
09-23

从 Android9 开始,系统开始针对非SDK接口做限制。

使用融云 CallPlus SDK,一小时实现一款 1V1 视频应用

该方法内部会以异步方式执行,并通过 IRCCallPlusResultListener#onStartCall 回调来获取方法的结果。 在发起通话之前需先设置本地和远端视图,在对端接听视频通话时,本端会自动渲染对端的视图。 使用 setCallPlusResultListener 方法添加通话 API 异步结

https://static001.geekbang.org/infoq/1b/1b4dd1fa17fbcd4b0e984297ba9e72f8.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

重识 Flutter 状态管理 — 探索 Flutter 中的状态

我遇到过很多没有了解过响应式编程框架的,或者从事后端开发,自己想用Flutter写个app玩玩的朋友,一上来,不管在哪里都用`setState`,我问为啥不用状态管理,大部分都回了一句:啥是状态管理?

Vulkan- 性能及精细化

Vulkan是新一代的图形显示API,Vulkan的初衷是将封闭复杂的gpu驱动层的能力开放给发开者,让开发者能更自由地掌控gpu。

https://static001.geekbang.org/infoq/df/df376c71505fc3272f5bf504a4cac1a5.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

山东布谷科技详解 Android 端直播应用源码保持优质直播质量的技术(三):可变比特率

Android端直播应用源码可变比特率的部署参考const express = require('express'); const { exec } = require('child_process'); const app = express(); const port = 3000;

安卓快速启动,启动速度 285 毫秒的实时安卓操作系统(RTAndroid)或 实时 Linux

成都实安安信公司相继开发了实时安卓操作系统(RTAndroid)的 1.1 版,1.5 版和 1.7 版。

https://static001.geekbang.org/infoq/4e/4eab45c55845a99b3a6c75526656fba7.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

重识 Flutter — 探索 Slivers 的奇妙世界(综合实例)

在前三篇文章中,从为什么要使用Sliver,再根据使用频率逐个解析Slivers系列的组件。相信您已经入门了Sliver的世界。为了更好的将Slivers相关的组件结合起来使用,本文将通过一个综合的案例来帮助你理解。

https://static001.geekbang.org/infoq/42/42be3ec4e06b3fcb4d99e15c92e8d5e3.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Flutter 与渐变色相关的那些有趣实用的例子

在日常的开发中,UI为了让界面更加吸引人往往会在界面上用到大量的渐变色。那么在本文中,我们将通过几个案例更好的去了解Flutter中渐变色的使用。让我们开始探索Flutter世界中绚丽多彩的渐变色效果吧!

https://static001.geekbang.org/infoq/56/5605c76e5d47e0dbb3bd17b4e061ad39.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android SDK 安全加固问题与分析

随着Android加固技术经过动态加载、不落地加载、指令抽取、java2cpp、VMP等技术不断演进和改进,VMP加固技术成为一种高安全性解决方案。因此,本文将着重介绍一种实现和落地VMP技术的思路,以帮助大家了解其工作原理和应用场景。

https://static001.geekbang.org/infoq/6b/6b28c586e5c5ec13b2e117b4e1dba1c4.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Flutter 卡片分享功能实现:将你的内容分享给世界

在开发app中,卡片分享功能可以为用户提供更好的交互和共享体验,我猜大家在开发的过程中也会有很大的概率碰上这样的需求。本文将带你学会如何在Flutter应用中实现卡片分享,提升用户体验~

PAG 动效框架源码笔记 (五)渲染流程

用户头像
olinone
06-08

上一章介绍了TGFX渲染框架的大致结构,本章基于OpenGL介绍TGFX绘制Texture纹理详细的渲染流程

https://static001.geekbang.org/infoq/79/799e54424cecb41735d37cdcc5c7bdac.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

From Java To Kotlin 2:Kotlin 类型系统与泛型终于懂了

用户头像
Seachal
06-06

上期主要分享了 From Java To Kotlin 1 :空安全、扩展、函数、Lambda。 这是 From Java to Kotlin 第二期。 带来 表达式思维、子类型化、类型系统、泛型。

PAG 动效框架源码笔记 (四)渲染框架

用户头像
olinone
05-31

PAG采用自研TGFX特效渲染引擎,抽象分离了接口及平台实现类,可以扩展支持多种图形渲染库,比如OpenGL、Metal等 本文结合OpenGL讲解了TGFX渲染引擎的大概框架结构,让各位有了一个初步认知

PAG 动效框架源码笔记 (三)播放流程

用户头像
olinone
05-19

PAG框架支持单PAGView同时渲染多个PAGFile,相较于渲染单一文件,框架首先需要解决多文件渲染同步问题

https://static001.geekbang.org/infoq/d5/d5444675198d33a957014c5344a1be32.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

UI 自动化测试革命:拥抱 Maestro 框架的未来之旅

用户头像
麦客
05-18

UI自动化测试是一种软件测试方法,旨在验证应用程序的用户界面是否按照预期进行操作和交互。它通过模拟用户在应用程序界面上的行为,如点击按钮、输入文本、选择选项等,来测试应用程序的功能和用户体验。

android_android技术文章_InfoQ写作社区