自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Android技术之家

主要分享移动互联网的相关产品和资讯,关注你将学习到更多,在互联网的当下你会赚更多的钱。

  • 博客(920)
  • 收藏
  • 关注

转载 白嫖一个好用的Android 开发辅助工具!

作者:小码哥哥https://juejin.cn/post/7194736298521788472闲来没事,手撸了一个辅助Android开发调试的工具App,适合Android开发者和测试同学使用。下载试用地址:githubhttps://github.com/CodeCrafts-app/CodeCrafts/raw/master/codecrafts-release-latest-versio...

2023-04-28 08:49:03 224

转载 Kotlin中隐藏的内存陷阱,你知道嘛?(建议收藏)

作者:Petterphttps://juejin.cn/post/7157905051531345956Kotlin 是一个非常棒的语言,从 null安全 ,支持方法扩展与属性扩展,到内联方法、内联类等,使用 Kotlin 变得越来越简单舒服。但编程从来不是一件简单的工作,所有简洁都是建立在复杂的底层实现上。那些看似简单的kt代码,内部往往隐藏着不容忽视的内存开销。介于此,本篇将根据个人开发经验...

2023-04-24 08:02:17 182

转载 launchAnyWhere: Activity组件权限绕过漏洞解析

前言今年3月份,知名反病毒软件公司卡巴斯基实验室发布了一份关于中国电商平台拼多多的调查报告,称该平台的安装程序中含有恶意代码。这一消息引起了广泛的关注和讨论,也引发了人们对于拼多多平台安全性的担忧作为技术开发人员,我看到了PDD对安卓OEM源码中的漏洞的深入研究。了解和学习Android漏洞原理有以下几个用处:提高应用安全性:通过了解漏洞原理,开发者可以更好地了解漏洞的产生机理,进而在应用开发过程...

2023-04-24 08:02:17 363

转载 Android 布局优化,看过来 ~

原文链接:https://juejin.cn/post/7221811522740256823阿健君屏幕刷新机制基本概念刷新率:屏幕每秒刷新的次数,单位是 Hz,例如 60Hz,刷新率取决于硬件的固定参数。帧率:GPU 在一秒内绘制操作的帧数,单位是 fps。Android 采用的是 60fps,即每秒 GPU 最多绘制 60 帧画面,帧率是动态变化的,例如当画面静止时,GPU 是没有绘制操作的,...

2023-04-19 08:00:20 92

转载 使用 Kotlin 委托,拆分比较复杂的 ViewModel

需求背景 在实际的开发场景中,一个页面的数据,可能是由多个业务的数据来组成的。使用 MVVM 架构进行实现,在 ViewModel 中存放和处理多个业务的数据,通知 View 层刷新 UI。传统实现 比如上面的例子,页面由3 个模块数据构成。我们可以创建一个 ViewModel ,以及 3个 LiveData 来驱动刷新对应的 UI 。class HomeViewModel() : ViewMod...

2023-04-19 08:00:20 336

转载 基于Compose & Canvas的蜘蛛网雷达效果

LiePy的博客地址:https://blog.csdn.net/LiePy?type=blog先看效果(文末附完整代码):实现过程 由于我初次看文章时并没有看的太细,感觉这个效果很炫酷就上手做了,完成之后仔细对比各个细节的实现,发现是有一些不同的,不过整体的思路大致是一致的,最后还有彩蛋。准备工作创建Compose方法,确定参数新建kotlin文件,输入comp,回车,AS帮我们自动生成comp...

2023-03-30 08:18:57 296

转载 Android Watchdog 狗子到底做了啥

作者:流浪汉kylin原文链接:https://juejin.cn/post/7215498393429983291前言有一定开发经验的或多或少有听过Watchdog,那什么是Watchdog呢?Watchdog又称看门狗,看门狗是育碧开发的一款游戏,目前已出到《看门狗军团》。开个玩笑,Watchdog是什么,为什么会设计出它,听到它也许能快速联想到死锁,它是一个由SystemServer启动...

2023-03-30 08:18:57 333

转载 货拉拉移动端网络优化——协议升级篇

作者:货拉拉技术链接:https://juejin.cn/post/7194627379656917047一、背景 网络能力是互联网App的基本能力,一个app只有联网才具有生命力。为了提升货拉拉移动端的网络请求速度、安全性,节省流量,成立了网络专项,对货拉拉的移动端从业务层、协议层、SDK等多个技术层面进行了全方位优化。经过一年多的改造,货拉拉的多个客户端网络速度提升明显,优化前后耗时如...

2023-03-25 08:00:07 1909

转载 安卓与串口通信-校验篇

前言 一些闲话时隔好几个月,终于又继续更新安卓与串口通信系列了。这几个月太颓废了,每天不是在睡觉就是虚度光阴,最近准备重新开始上进了,所以将会继续填坑。今天这篇文章,我们来说说串口通信常用的几种校验方式的原理以及给出计算代码,当然,因为我们讲的是安卓的串口通信,所以代码将使用 kotlin 来编写。作者:equationl链接:https://juejin.cn/post/72117750983...

2023-03-22 08:32:37 831

转载 货拉拉客户端通用日志组件 - Glog

作者:货拉拉技术链接:https://juejin.cn/post/7168662263337861133Glog 是货拉拉移动端监控系统中的日志存储组件,Glog 意即 General log - 通用日志。为了满足我们对日志格式的多种需求,我们在存储方式、归档方式上做了一些探索和实践,使得 Glog 的通用性和性能优于常见的日志方案。Glog 已经在货拉拉全线 App 中稳定运行了 1 年...

2023-03-19 08:01:00 562

转载 线程池也会导致OOM的原因

作者:流浪汉kylin链接:https://juejin.cn/post/72106919577905726011. 前言我这边从一个问题引出这次的话题,我们可能会在开中碰到一种OOM问题,java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again相信很多人碰到过这个错误,很容易从网上搜索到出现这个问题...

2023-03-19 08:01:00 390

转载 是时候弃用 buildSrc ,使用 Composing builds 加快编译速度了

作者:北海道浪子链接:https://juejin.cn/post/7208015274079387707为什么要使用复合构建 依赖管理一直是一个优化痛点,从硬编码到ext,再发展到buildSrc,尽管表面上看复杂度在发展中增长了,但是对于追求更快更干净的构建来说确实进步了不少。不过buildSrc虽然给了我们相对干净的使用方式,但是依然没有解决最核心的编译速度问题,在编译过程中 Gradle...

2023-03-15 08:36:55 838

转载 使用DSL方式自定义一个Drawable控件,准备给项目来个全套

我们使用DSL的方式自定义了一个弹框组件,完全撇弃了以往传统自定义View的命令式方式,采用了声明式构建UI的方式,无论是在代码的可读性上,组件的扩展性上,还有维护成本上,都有了不小的改善,那么在这篇文章中,我们继续用DSL去自定义我们常用的Drawable控件作者:Coffeeee链接:https://juejin.cn/post/7206732474112540727常用的方式 xml文件我...

2023-03-15 08:36:55 165

转载 使用DSL的方式自定义了一个弹框,代码忽然变的有那么一点点好看

现在大多数的项目当中都会有一个弹框组件,其目的是为了可以将涉及到弹框场景的逻辑,或者ui统一的进行管理维护,带来的好处是需要弹框的地方不用重新自己去自定义一个,导致弹框轮子泛滥,而是调用组件提供的api将一个符合设计规范的弹框渲染出来,如果设计规范更新了,只要更新一下组件,那么所有弹框都可以一起更新,节省了逐个修改的时间。从另一个方面来说,由于弹框组件几乎整个团队里面每个人都会使用,它的优点与缺点...

2023-03-10 08:00:50 240

原创 Android 获取手机已安装的应用列表(适配)

权限 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" />加上权限才能获取到所有的应用获取代码 public static boolean hasApplication(Conte...

2023-03-02 08:00:21 6324 2

转载 FileProvider详解

作者:嘉伟咯链接:https://www.jianshu.com/p/bf61f559f331高版本的android对文件权限的管控抓的很严格,理论上两个应用之间的文件传递现在都应该是用FileProvider去实现,这篇博客来一起了解下它的实现原理。首先我们要明确一点,FileProvider就是一个ContentProvider,所以需要在AndroidManifest.xml里面对它进行声...

2023-03-02 08:00:21 6971

转载 史上最完美的Android沉浸式状态导航栏攻略

前言 最近我在小破站开发一款新App,叫高能链。我是一个完美主义者,所以不管对架构还是UI,我都是比较抠细节的,在状态栏和导航栏沉浸式这一块,我还是踩了挺多坑,费了挺多精力的。这次我将我踩坑,适配各机型总结出来的史上最完美的Android沉浸式状态导航栏攻略分享给大家,大家也可以去 高能链官网 下载体验一下我们的App,实际感受一下沉浸式状态导航栏的效果(登录,实名等账号相关页面由于不是我开发的,...

2023-02-26 11:36:33 1485

转载 Android自定义通知适配攻略

码上开炼的博客地址:https://juejin.cn/user/2551282372718599前言 本文主角:NotificationChannelNotificationManager(notify方法)RemoteViewsNotificationManagerCompat.cancel(notifyId)UI适配(展开&折叠)创建一条自定义通知 NotificationChann...

2023-02-26 11:36:33 1086

转载 Arouter适配AGP 7.3.0版本

如何调试arouter 源码 arouter的代码 主要分为 3个部分,一个是基础的arouter-api包, 然后是注解处理器arouter-compile包 最后是arouter-register 这个包, 简单概述一下 这3个模块的具体作用吧arouter-api:99%的人使用arouter代码 都是直接用这个包下面的api,大部分用下注解就可以了arouter-compiler:这里是注...

2023-02-24 08:00:43 1644

转载 Android源码—为什么onResume方法中不可以获取View宽高

前言 有一个经典的问题,我们在Activity的onCreate中可以获取View的宽高吗?onResume中呢?对于这类八股问题,只要看过都能很容易得出答案:不能。紧跟着追问一个,那为什么View.post为什么可以获取View宽高?今天来看看这些问题,到底为何?今日份问题:为什么onCreate和onResume中获取不到view的宽高?为什么View.post为什么可以获取View宽高?基于...

2023-02-24 08:00:43 533

转载 Android阴影实现的几种方案,你知道几种?

作者:newkihttps://juejin.cn/post/7149706291261210654圆角容器?自定义圆角容器?自定义圆角加阴影容器?太难了,不知道大家有没有同款UI设计师,非常喜欢圆角,还喜欢异形的圆角,特别喜欢顶部圆角或者左上角圆角。之前在面向UI设计师开发一篇文章中,我们已经对一些异形圆角做了自定义的处理,可是现在需求升级了。https://juejin.cn/post/714...

2023-02-20 08:00:12 1115

转载 这么好的Android开发辅助工具App不白嫖可惜了

过年期间闲来没事,手撸了一个辅助Android开发调试的工具App,适合Android开发者和测试同学使用。Github地址下载,Gitee地址下载(需要登录gitee) https://gitee.com/luqinx/codecrafts-docs/raw/master/codecrafts-release-latest-version.apk功能概览对我这样的懒人开发者来说,反复的做...

2023-02-20 08:00:12 412

转载 包体积优化总结

原文发布于:小木箱成长营关于 So 优化 首先我们来到第一部分内容关于 Native 层优化,关于 Native 层优化有六部分可以和大家说一下,第一部分内容是配置 abiFilters。第二部分内容是避免解压缩原生库.第三部分内容是移除调试符号。第四部分内容是 so 压缩方案.第五部分内容是 so 混淆方案.第六部分内容是包体监控。1.1 配置 abiFilters首先我们聊聊第一部分内容配置 ...

2023-02-16 08:50:39 877

转载 ARouter 源码分析

ARouter基本使用 在开始分析源码之前,先了解一下ARoute如何使用的,使用ARoute可以概括为以下3步:项目中引入ARouter 及配置初始化ARouter开始使用下面详细的看下每一步怎么操作项目中引入ARouter及配置其实这一步就是导包,将ARouter 下载到本地,在app module下的build.gradle文件中 添加以下代码plugins { ... id...

2023-02-16 08:50:39 288

转载 【Kotlin】标准库函数总结

文章目录一、apply 标准库函数二、let 标准库函数三、run 标准库函数1、run 函数传入 Lambda 表达式作为参数2、run 函数传入函数引用作为参数四、with 标准库函数五、also 标准库函数六、takeIf 标准库函数七、takeUnless 标准库函数Kotlin 语言中 , 在 Standard.kt 源码中 , 为所有类型定义了一批标准库函数 , 所有的 Kotlin ...

2023-02-13 08:00:40 346

转载 Unity与Android交互(双端通信)

前言最近小编开始做关于手部康复的项目,需要Android集成Unity,以Android为主,Unity为辅的开发;上一篇给大家分享了Unity嵌入Android的操作过程,所以今天想给大家分享一下双端通信的知识;一. Android与Unity哪个为主?一般情况下,根据需求来决定Android与Unity的轻重,可以总结为以下两种1. 将Unity作为Android程序中的一部分进行开发 ,将...

2023-02-13 08:00:40 1610

转载 Android Framework分析Launcher启动过程

目录前言 Launcher是一个用来显示系统中已经安装的应用程序的应用程序,Launcher 在启动过程中会请求PackageManagerService 返回系统中已经安装的应用程序的信息,并将这些信息封装成一个快捷图标列表显示在系统屏幕上,这样用户可以通过点击这些快捷图标来启动相应的应用程序,它的作用主要有两点一个是启动应用程序一个是显示和管理应用程序的快捷图标或者其他桌面组件。分析Launc...

2023-02-09 08:29:49 267

转载 详解Gradle之flavor

flavor配置不同包名 productFlavors { dev { applicationId "com.lyl.dev" } stage { applicationId "com.lyl.stage" } prod { applicationId "com.lyl.prod" }}pro...

2023-02-03 11:53:52 1405

转载 通知栏的那些奇技淫巧

一、问题的由来前几天,一个网友在微信群提了一个问题:通知栏监听模拟点击如何实现?我以为业务情景是在自己应用内,防止脚本模拟点击而引申出来的一个需求,心里还在想,是否可以使用自定义View——onTouchEvent的参数MotionEvent的getPressure来判断是否是模拟点击。后来经过沟通得知,业务需求是如何监听第三方应用的通知栏,实现具体按钮的点击。如下图:上面是多家音频应用的通知栏在...

2023-01-30 09:36:23 307

转载 Rust库交叉编译以及在Android与iOS中使用

本篇是关于交叉编译Rust库,生成Android和iOS的二进制文件(so与a文件),以及简单的集成使用。1.环境 系统:macOS 13.0 M1 Pro,Windows 10Python: 3.9.6Rust: 1.66.1NDK: 21.4.7075529这里就不具体说明以上环境的安装配置了,有需要可以去对应官网查找或看文末参考链接。高版本ndk操作有所不同,我后面会说到。其他版本没有具体要...

2023-01-30 09:36:23 1673 1

转载 Android Studio Electric Eel | 2022.1.1 发布,快来看看有什么大更新吧

原文链接:https://link.juejin.cn/?target=https%3A%2F%2Fdeveloper.android.com%2Fstudio%2Freleases本次 Android Studio 又发布了大量的内容更新,按照惯例推荐是等两个小版本后再更新会比较稳,当然也鼓励大家尝尝鲜,本次更新推出了大量实用的功能。另外由于国内对更新内容关注度等原因,这里调整了更新内容的顺序,...

2023-01-18 08:55:47 1141

转载 如何让一套代码完美适配各种屏幕?想想就刺激

适配的目的区别于iOS,android设备有不同的分辨率大小以及不同厂商的系统,目前市场的分辨率可以看下相关统计。2021市场移动设备分辨率统计:https://36kr.com/p/1070633276729474可以看到主流的分辨率有10多种,当不做适配时,一套代码在不同设备上的效果偏大、偏小、截断以及留白严重,那一套代码如何完美的展示在不同的设备上,可以看下面的一些适配方案。UI适配 常见的...

2023-01-12 08:21:33 265

转载 由浅入深,详解 ViewModel 的那些事

引言关于ViewModel,Android 开发的小伙伴应该都非常熟悉,无论是新项目还是老项目,基本都会使用到。而ViewModel作为JetPack核心组件,其本身也更是承担着不可或缺的作用。因此,了解ViewModel的设计思想更是每个应用层开发者必不可缺的基本功。随着这两年ViewModel的逐步迭代,比如SaveStateHandle的加入等,ViewModel也...

2023-01-12 08:21:33 222

转载 Android 权限控制机制

1.应用权限机制 权限机制?Android 是一个权限分离的系统。这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid,从而使得不同的 Application 之间的私有数据和访问(native 以及 Java 层通过这种机制,都可以)达到隔离的目的。与此同时,Android 还在此基础上进行扩展,提供了permission机制,它主要是用...

2023-01-06 08:33:05 3645

转载 Android NDK开发:Opencv实现戴口罩识别

目录 效果展示相关文章及项目这里的程序是以我的这篇文章为基础的:Android NDK开发:Opencv实现人脸识别这里我参考了这个项目:https://github.com/hpc203/FaceMaskDetection-dnn,用的这个项目里面的C语言部分的代码和dnn模型数据,移植到了Android上实现步骤1.创建人脸框类 这里创建一个用于存储人脸框和是否佩戴口罩的类用于绘制public...

2023-01-04 08:38:17 193

转载 Android开机全解析

对于任何操作系统来讲,开机时间的优化都是一个很关键的工作。如果用户每次启动设备都需要等待很长的时间,那么其用户体验是很差的。本文从Android12出发,分以下三部分阐述Android系统的开机优化:Android开机过程分析开机时间开机速度优化实践备注1. 文中所有的代码都省略了无关部分,并且省略了省略号;2. 由于作者能力有限,难免会有不正确或者不完善的地方。欢迎大家指正。1. Android...

2022-12-27 08:00:53 1699

转载 ADB批量截图,且用时间命名

一、前言:  因为工作的需要,我要将安卓一体机上的运行图片截图保留做一个操作手册,但是我又不想在cmd里面一行一行的写命令,于是我就参照同事给的bat脚本写了一个用时间命令截图名字的bat脚本,这个脚本不会受0-9或者10-24小时时段的影响。二、脚本如下:set "p=F:\chuangbai\jietu\wanshitong\"if %time:~0,2% leq 9 (set hour=0%...

2022-12-16 08:01:00 674

转载 探索BottomSheet的背后秘密

1、关于 Bottom Sheet Bottom Sheet 在Android Design Support Library 23.2 版本引入,翻译过来即底部动作条的意思,可以设置最小高度和最大高度 ,执行进入/退出动画,响应拖动/滑动手势等,主要用于实现从底部弹出一个对话框的效果。效果如下:一个合理的半屏弹出容器应该具备以下功能:支持进出滑动动画及手动滑动拖拽处理滑动冲突在 Google 官方...

2022-12-16 08:01:00 879

转载 安卓与串口通信-modbus篇

前言 在之前的两篇文章中,我们讲解了串口的基础知识和在安卓中使用串口通信的方法,如果还没看过之前文章的同学们,建议先看一遍,不然可能会不理解这篇文章讲的某些内容。事实上,在实际应用中,我们很少会直接使用串口通信,一般都会使用到 Modbus。因为正如我上篇文章所说,如果直接使用串口通信的话,需要我们自定义数据层协议,或者干脆就直接发送一个 byte 的数字进行通信,这显然是不方便的,也不安全的。例...

2022-12-10 08:00:38 4280 1

转载 支持点击交互的Lottie-Android篇

为什么需要扩展Lottie?原生Lottie的不足Lottie相信端侧开发的同学一定非常熟悉,打一出世就技惊四座,直接将动画开发的效率提高到了极高的级别,将我们开发从动画的深渊中一把拽出,可以说没有Lottie之前遇到动画的项目头发掉一地,有了Lottie后的动画需求真就保温杯里泡枸杞了。于是我们可以慢慢欣赏Lottie呈现出以下效果随着业务迭代,设计师er将动画又推向了一个新的高度,已经不仅...

2022-12-09 08:00:39 437

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除