前言在一些情况下,app中经常要做Hook ActivityThread、Choreographer FrameHandler,ViewRootImpl,InputMethodManager中Handler的操作,然而我们往往不可避免的就去hook替换原有的Handler或者Callback,除此之外,还有什么办法呢?我们本篇通过Looper实现另一种免ho ......
53
0
0
2024-11-29
大纲部署验证Linux Trace获取Trace展现Trace参考资料perfetto是知名的Android系统性能分析平台。我们还可以用它去分析Linux系统和Chrome(需要装扩展)。本文我们只介绍如何安装的验证。部署我们使用Docker部署perfetto ui系统。FROM ubuntu:20.04 WORKDIR /perfetto-ui R ......
49
0
0
2024-11-13
前言Android使用XML的时候,实现圆角和边框都是使用背景实现的。如果需要剪裁成圆角,则可以使用CardView实现。CardView设置圆角<androidx.cardview.widget.CardView android:layout_width="330dp" android:layout_height="166dp" ......
158
0
0
2024-08-12
前言Kotlin协程底层是用线程实现的,是一个封装完善供开发者使用的线程框架。Kotlin的一个协程可以理解为是运行在线程上的一个执行任务并且该任务可以在不同的线程间切换,一个线程可以同时运行多个协程。从开发者角度来看:kotlin协程可以实现以同步的方式去编写异步执行的代码,解决线程切换回调的嵌套地狱。协程挂起时不需要阻塞线程,几乎是无代价的。创建协程的方 ......
234
0
0
2024-07-27
实现一个Android APP主要需求:1、APP连接蓝牙转以太网的转接板给底板配置广播信息;2、广播板的状态能通过蓝牙转接板透传给APP;蓝牙搜索,发现这些之前一个app都做过,但是读写数据没有做,关键点是:1、GATT连接;2、服务特征UUID/读特征UUID 配置特征UUID/写特征UUID,这几个特征UUID 最好是找厂家确认。要接收到蓝牙的数据,关 ......
305
0
0
2024-07-12
前言:关于下拉选择框,估计大家都有很多选择,我在以前的文章:项目需求讨论-HyBrid模式需求改造 上写过下拉框选择这一块,正好用的Spinner。这次正好又有一个下拉框的需求,所以这次我使用了PopupWindow来实现的。然后想到其实PopupWindow很多地方都会用到,但是一直没有好好的总结过,所以就想到了写本文,而且本文也十分的基础和简单,大家也很 ......
282
0
0
2024-05-29
​为什么要做GB28181设备接入侧?实际上,在做Android平台GB28181设备接入模块的时候,我们已经有了非常好的技术积累,比如RTMP推送、轻量级RTSP服务、一对一互动模块、业内几乎最好的RTMP|RTSP低延迟播放器。Android平台GB28181接入SDK(SmartGBD),主要实现不具备国标音视频能力的 Android终端,通过平台注册 ......
396
0
0
2024-05-27
零、前言1.本文的知识点[1].Intent的简介及[隐式调用]和[显示调用] [2].对象的序列化与反序列化:[Parcelable(简)]和`Serializable] [3].[Bundle类]的及其在intent的数据传递 [4].Android源码中[intent-filter]的解析流程 2.Intent总览类名:Intent ......
419
0
0
2024-05-22
简介:Exif是一种图像文件格式,它的数据存储与JPEG格式是完全相同的。实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及GPS全球定位系统数据、缩略图等。你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但 ......
341
0
0
2024-05-18
1 概述这里我们会详细讲解matrix的各个方法,以及它的用法。matrix叫做矩阵,在前面讲解 ColorFilter 的文章中,我们讲解了ColorMatrix,他是一个4*5的矩阵。而这里,我们讲解的Matrix不是用于处理颜色的,而是处理图形的。他是一个3*3的矩阵。2 原理先看看matrix的矩阵是什么样子的:这里可以查看Matrix的代码得到。那 ......
400
0
0
2024-05-18
前言:发现很多开发人员做在时间相关的问题的时候,各有各的方法,然后对时间相关的处理,各种Java自带的时间相关类的知识面都不是很清楚,有时候看见他们在开发时候,都是一边使用到了,然后临时百度去处理时间相关的问题。说个简单的,比如现在要问一首歌的时长,后台返回给你00:03:06,然后你代码中要用到总秒数时长,这时候问你怎么把这个变成具体的秒数。在现有的项目中 ......
281
0
0
2024-05-16
Activity生命周期我估计如果面试面试官问你Activity的生命周期报一遍看,你心里一定暗骂mmp。因为这种一般菜鸟都知道有哪些常用的,虽然可能有些不常用的,不清楚也是很正常,而且面试官也就是想知道几个常用的而已。正常生命周期一般来说我们讲的生命周期就是下面几个:其中主要提下(onStart - onStop),(onResume - onPause) ......
313
0
0
2024-05-13
零、前言1.本文的知识点1).Service的简单`介绍及使用` 2).Service的`绑定服务`实现`音乐播放器(条)` 3).使用`aidl`实现其他app访问该Service,播放音乐 2.Service总览类名:Service 父类:ContextWrapper 修饰:public abstract 实现的接 ......
304
0
0
2024-05-13
零、前言1.canvas本身提供了很多绘制基本图形的方法,普通绘制基本满足 2.但是更高级的绘制canvas便束手无策,但它的一个方法却将图形的绘制连接到了另一个次元 3.下面进入Path的世界,[注]:本文只说Path,关于绘制只要使用Canvas.drawPath(Path,Paint)即可 4.本文将对Path的所有API进行测试。一、引:认识Path ......
274
0
0
2024-05-13
引言在Android开发中,数据的管理是一个至关重要的问题。随着应用复杂度的增加,我们需要一种能够有效管理数据和处理UI相关逻辑的机制。Android架构组件中的ViewModel应运而生。本文将深入探讨ViewModel的原理,并介绍其高级运用,旨在帮助开发者更好地理解和运用这一组件。什么是ViewModel?ViewModel是一种设计模式,它的目标是将 ......
221
0
0
2024-05-04