简介:Exif是一种图像文件格式,它的数据存储与JPEG格式是完全相同的。实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及GPS全球定位系统数据、缩略图等。你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但 ......
22
0
0
2024-05-18
1 概述这里我们会详细讲解matrix的各个方法,以及它的用法。matrix叫做矩阵,在前面讲解 ColorFilter 的文章中,我们讲解了ColorMatrix,他是一个4*5的矩阵。而这里,我们讲解的Matrix不是用于处理颜色的,而是处理图形的。他是一个3*3的矩阵。2 原理先看看matrix的矩阵是什么样子的:这里可以查看Matrix的代码得到。那 ......
34
0
0
2024-05-18
前言:发现很多开发人员做在时间相关的问题的时候,各有各的方法,然后对时间相关的处理,各种Java自带的时间相关类的知识面都不是很清楚,有时候看见他们在开发时候,都是一边使用到了,然后临时百度去处理时间相关的问题。说个简单的,比如现在要问一首歌的时长,后台返回给你00:03:06,然后你代码中要用到总秒数时长,这时候问你怎么把这个变成具体的秒数。在现有的项目中 ......
30
0
0
2024-05-16
Activity生命周期我估计如果面试面试官问你Activity的生命周期报一遍看,你心里一定暗骂mmp。因为这种一般菜鸟都知道有哪些常用的,虽然可能有些不常用的,不清楚也是很正常,而且面试官也就是想知道几个常用的而已。正常生命周期一般来说我们讲的生命周期就是下面几个:其中主要提下(onStart - onStop),(onResume - onPause) ......
50
0
0
2024-05-13
零、前言1.本文的知识点1).Service的简单`介绍及使用` 2).Service的`绑定服务`实现`音乐播放器(条)` 3).使用`aidl`实现其他app访问该Service,播放音乐 2.Service总览类名:Service 父类:ContextWrapper 修饰:public abstract 实现的接 ......
56
0
0
2024-05-13
零、前言1.canvas本身提供了很多绘制基本图形的方法,普通绘制基本满足 2.但是更高级的绘制canvas便束手无策,但它的一个方法却将图形的绘制连接到了另一个次元 3.下面进入Path的世界,[注]:本文只说Path,关于绘制只要使用Canvas.drawPath(Path,Paint)即可 4.本文将对Path的所有API进行测试。一、引:认识Path ......
69
0
0
2024-05-13
引言在Android开发中,数据的管理是一个至关重要的问题。随着应用复杂度的增加,我们需要一种能够有效管理数据和处理UI相关逻辑的机制。Android架构组件中的ViewModel应运而生。本文将深入探讨ViewModel的原理,并介绍其高级运用,旨在帮助开发者更好地理解和运用这一组件。什么是ViewModel?ViewModel是一种设计模式,它的目标是将 ......
77
0
0
2024-05-04
之前写过一篇《隐私合规代码排查思路[1]》的文章,但文章没有将方案开源出来,总觉得差了那么点意思,这次打算把几种常规的检测方法都开源出来,给大家一些借鉴思路。对于一套完整的隐私合规检查来说,动静结合是非常有必要的,静态用于扫描整个应用隐私 api 的调用情况,动态用于在运行时同意隐私弹框之前是否有不合规的调用,以下列出一些常规的检查方案:思维导图中 ✅ 打钩 ......
218
0
0
2024-04-04
JPG还是PNG?JPG和PNG是两种常见的图片文件格式,在压缩方式、图像质量、透明效果和可编辑性等方面存在显著差异。压缩方式:JPG是一种有损压缩格式,通过丢弃图像数据来减小文件大小,因此可能会损失一些图像细节和质量。而PNG使用的是无损压缩格式,它不会丢失任何原始图像数据,从而保持了图像的完整性和质量。图像质量:由于压缩方式的不同,JPG在压缩后会牺牲一 ......
179
0
0
2024-04-02
读完需要8分钟速读仅需 3 分钟引言在Android领域,面试是展示个人技能和经验的重要场合。本文将围绕Android中的Flow相关技巧展开,深入分析高级疑难问题,帮助Android技术人员提升面试水平。Flow的核心概念问题: 请解释Flow是什么,与传统的RxJava相比有何优势?出发点:在回答这个问题时,应当强调对Flow的理解以及与RxJava的对 ......
170
0
0
2024-03-31
作者:Gityuan博客: libcore/ojluni/src/main/ Java /java/lang/Class.java art/ Runtime /native/java_lang_Class.cc art/runtime/hidden_api.h art/runtime/runtime.h 一、引言每一次Android大版本的 ......
93
0
0
2024-03-29
如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁 线程 ,如此一来会大大降低系统的效率。这就是 线程池 的目的了。线程池为线程生命周期的开销和资源不足问题提供了解决方案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程池主要流程 用户通过submit提交一个任务,线程池会执行如下流程:判断当前运行的worker数 ......
80
0
0
2024-03-12
前言原始方式在我们的开发过程中,需要获取XML布局文件中的ViewId,以便其赋值显示,我们习惯使用findViewById进行操作,可这样会导致很多的模版代码出现。Butter Knife框架直到Android大神 Jake Wharton开源了Butter Knife框架,通过Bind方式绑定获取ViewId。基于Kotlin的扩展近几年Android对 ......
91
0
0
2024-03-08
前言因业务需要,过去一年从熟悉的Android开发开始涉及嵌入式Linux开发,编程语言也从Java/Kotlin变成难上手的C++,这里面其实有很多差异点,特此整理本文来详细对比这两者开发的异同,便于对嵌入式Linux开发感兴趣的同学一些参考。适用人群有一定Android开发经验想了解嵌入Linux开发的同学思维导图架构对比注:左边是Android的平台架 ......
107
0
0
2024-03-02
| 导语上文介绍了Android中提供的Ashmem(匿名内存)。Ashmem以驱动的形式运行在内核。应用层如果需要使用Ashmem,可以直接打开Ashmem驱动并和驱动进行交互,也可以使用Android为我们提供的基于Ashmem驱动的函数库(更推荐使用这个)。本文将介绍Android提供的Ashmem函数库以及共享内存的实现。1. Ashmem函数库函数 ......
120
0
0
2024-02-15