| 导语上文介绍了Android中提供的Ashmem(匿名内存)。Ashmem以驱动的形式运行在内核。应用层如果需要使用Ashmem,可以直接打开Ashmem驱动并和驱动进行交互,也可以使用Android为我们提供的基于Ashmem驱动的函数库(更推荐使用这个)。本文将介绍Android提供的Ashmem函数库以及共享内存的实现。1. Ashmem函数库函数 ......
21
0
0
2024-02-15
当涉及到Android应用程序中的网络请求处理时,OkHttp是一个非常强大和流行的工具。其中一个关键的功能是拦截器(Interceptors),它们允许您在请求和响应传输到服务器和应用程序之间执行各种操作。在本文中,我们将深入研究OkHttp拦截器,了解其工作原理以及如何使用它们来优化您的Android应用程序。什么是OkHttp拦截器OkHttp拦截器是 ......
45
0
0
2024-02-05
动态代理是一种在编程中非常有用的设计模式,它允许你在运行时创建一个代理对象来代替原始对象,以便在方法调用前后执行额外的逻辑。在Android开发中,动态代理可以用于各种用例,如性能监控、AOP(面向切面编程)和事件处理。本文将深入探讨Android动态代理的原理、用途和实际示例。什么是动态代理?动态代理是一种通过创建代理对象来代替原始对象的技术,以便在方法调 ......
32
0
0
2024-02-04
简介Android Glide是一款强大的图片加载库,提供了丰富的功能和灵活的使用方式。本文将深入分析Glide的工作原理,并介绍一些使用姿势,助你更好地运用这个优秀的库。原理分析Glide的原理复杂而高效。它首先基于给定的图片URL或资源ID进行加载,支持多种数据源,包括网络请求、本地文件和ContentProvider等。Glide通过缓存机制提高加载速 ......
34
0
0
2024-02-04
引言在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入Android开发的朋友有帮助。 一、安装 JDK 官网: JAVA /javase/downloads/index ......
61
0
0
2024-01-13
目录 混淆编辑器介绍 功能说明 编译流程 二者区别 使用说明 规则文件说明 组件化混淆 1. 混淆编译器Android 代码混淆历史时期可以根据使用何种混淆编辑器分为以下两个时期: ProGuard:一个通用的 Java 字节码优化工具 R8:ProGuard 的继承者,专为 Android 设计,编译性能和编译产物更优秀 ......
63
0
0
2024-01-11
WMRouter是一款Android路由框架,基于组件化的设计思路,功能灵活,使用也比较简单。WMRouter最初用于解决美团外卖App在业务演进过程中的实际问题,之后逐步推广到了美团其他App,因此我们决定将其开源,希望更多技术同行一起开发,应用到更广泛的场景里去。GitHub项目地址与使用文档详见 。本文先简单介绍WMRouter的功能和适用场景,然后 ......
67
0
0
2024-01-07
1、概述 html 在android开发的过程当中,有时候会遇到这样的需求,须要显示很大的图片,而且还不容许压缩。好比显示:世界地图、 微博 长图等,那么如何完成这个需求呢? 首先咱们分析一下,图片很是大,考虑到内存的状况,咱们不能一次将整个图片加载到内存中,由于这样会OOM,而后图片的宽或者高超出了手机屏幕的尺寸,要想显示整张没有压缩过的图片,咱们只能每次 ......
138
0
0
2023-09-19
目录前言一、为什么需要自定义控件二、具体步骤1.首先我们创建一个 layout xml文件:2.为自定义控件创建java类:3.在res/values下,新建一个attrs.xml文件:4.最后使用:前言你好, 我是Cici。这几天在做一个小项目的时候,用到了自定义控件,为了方便在XML中进行配置,于是需要用到自定义属性,特此记下用法,方便复习的同时也希望对 ......
156
0
0
2023-09-16
目录一、如何绘制X和Y轴。1、我们来分析下,我们想知道三个坐标,那么这三个坐标是多少呢,我们该怎么计算呢? 答:这里,我是在onSizeChanged()方法中获取到了父类控件的宽度,然后把宽度分成16份,例如,下方的上下左右四个分别如下:2、这三个坐标我们有了,那就好办了,我们根据这四个参数值,就可以知道我们上面三个坐标点的坐标,在draw()方法中,连接 ......
150
0
0
2023-09-15
目录Android中常用的布局方式有以下几种:(一)线性布局LinearLayout(二)相对布局RelativeLayout(三)表格布局TableLayout(四)帧布局FrameLayout(五)绝对布局AbsoluteLayout(六)网格布局GridLayoutAndroid中常用的布局方式有以下几种:线性布局LinearLayout相对布局Rel ......
163
0
0
2023-09-14
目录应用进程的启动流程1、ActivityStackSupervisor.startSpecificActivity2、ATMS.startProcessAsync3、LocalService.startProcess4、startProcessLocked函数5、ProcessList.startProcessLocked6、ProcessList.sta ......
123
0
0
2023-09-11
目录正文广播的注册广播的解注册广播的发送总结正文本文整体阅读下来相对Activity和Service的启动流程较容易,比较贴近我们日常代码开发习惯。我们曾经有个整机项目,多个APP跨进程交互,本来想采用AIDL进行的,但最终考虑到项目工期和其他同事的能力,最终在采用广播方式进行IPC。那时,自己也在想,这么多个APP相互发信息,数据量也大,对整机性能有影响么 ......
147
0
0
2023-09-11
目录Excel读取excel文件:Use:输出excel文件:@ExcelWriteCell@ExcelWriteAdapterIConvertParserAdapter 接口@ExcelWriteAdapter使用方法:Use:Excelapache 为 java开发者们提供了一套excel表格读写的工具:POI ,对于一个小白来说每次读写使用POI需要写 ......
105
0
0
2023-09-11
目录问题现象源码分析实践验证结论问题现象最近处理了一个非常有意思的系统bug,修改系统时间,重启后居然没有生效注意要关闭使用网络提供的时间和使用网络提供的时区这两个开关。重启后显示的时间日期为显示的时间既不是我设置的时间,也不是当前时间(当前时间为2023-03-20 15:49),那么显示的这个时间到底是什么时间呢?为了弄清楚这个问题,我研究了一下Andr ......
103
0
0
2023-09-10