技术最TOP

其他

从 Kotlin 开发者角度看 Java 缺失的特性

首选语言。原文链接:https://blog.frankel.ch/miss-in-java-kotlin-developer/---END---推荐阅读:ASM
2022年8月18日
其他

ASM 字节码插桩:隐私合规方法检测!

关注「技术最TOP」,早上8:40不见不散!作者:season_y链接:https://juejin.cn/post/71287241626458521681.前言近两年来工信部对于应用的隐私合规安全问题愈加重视,对
2022年8月16日
其他

Android 启动优化方案调研!

storage/emulated/0/Android/media/com.example.app/SampleStartupBenchmark_startup-baseline-prof.txt
2022年8月8日
其他

Android实现人物关系图谱,人物影响力图!

关注「技术最TOP」,早上8:40不见不散!作者:littletree_风中追风链接:https://juejin.cn/post/7123133679274033189前言最近在做一个项目,其中有一个页面是要做一个类似于个人分享关系图的效果。于是找了网上很多demo,借鉴的一些思路和方法,打算自己动手撸一个出来。效果整体思路创建自定义的view继承Framelayout捆绑布局Relativelayout,放置一个绘制线的布局,和一个绘制头像的布局(用来add动态创建的iamgeview),这里默认给予3000*3000。获取数据,根据degree分别筛选出不同层次的实体类list。绘制第一层头像(即中心点):默认中心点的坐标为1500*1500,以及set4个边缘的坐标(以正方形考虑),并绘制头像。绘制第二层头像:获取第二层数据,360度除以个数,计算出角度,根据角度,计算出中心点,并绘制头像。绘制第三层头像:根据第二层的角度和坐标,计算出角度和中心点,并绘制头像。(重点需要头像去重)根据坐标点画线,并设置长按和缩放事件。所以在我的自定义view中包含2个view(设置了默认布局大小3000*3000)
2022年8月1日
其他

总结几次面试中被问到的组件化问题 !

否可以做到按需、动态使用、因此就会涉及到组件加载、卸载等管理问题。集成调试。在开发阶段如何做到按需编译组件?一次调试中可能有一两个
2022年7月28日
其他

仿墨迹24小时天气自定义View!

关注「技术最TOP」,早上8:40不见不散!作者:LazyIonEs链接:https://juejin.cn/post/7117174531910795272先看墨迹天气效果图因为需求原因,改了一些样式话不多说,直接开始,首先是画出这条曲线,找到每个小时温度对应点位,连成一条线,左边显示最高温度和最低温度,最高温度对应曲线中的最高点,最低温度对应曲线中的最低点,直接上代码private
2022年7月25日
其他

vivo官网APP全机型UI适配方案

全机型适配成本高在哪上面的案例其实只是表面的问题之一,作为开发人员,需要考虑的因素有很多,首先要想到这些机型有什么特点:然后才是需要解决的问题:三、寻找全机型适配方案之旅3.1
2022年7月21日
其他

MotionLayout动画效果实现的几种方式!

关注「技术最TOP」,早上8:40不见不散!作者:newki链接:https://juejin.cn/post/7110027299214999589MotionLayout
2022年7月18日
其他

Android动态加载so!这一篇就够了!

-执行阶段中,配置阶段执行的任务之一,完成afterEvaluate就可以得到所有的tasks,从而可以在里面插入我们定制化的数据task(dynamicSo)
2022年7月4日
其他

Jetpack Compose 实现一个图片选择框架

uri、displayName、mimeType、width、height、orientation、size、path、bucketId、bucketDisplayName
2022年7月1日
其他

Jetpack Compose 自定义布局+物理引擎 = ?

关注「技术最TOP」,早上8:40不见不散!作者:FunnySaltyFish链接:https://juejin.cn/post/7103824524876972046效果废话不说,先上图!所对应代码大致为:val
2022年6月27日
其他

玩转 Compose 动画:手把手教你实现微博点赞彩虹特效

CubicBezierEasing抛物线动画再来看一下抛物线动画的实现。通常我们可以借助抛物线公式,基于一些动画状态变量计算抛物线坐标来实现动画,但这个例子中我们借助
2022年6月20日
其他

货拉拉Android稳定性治理实践!

Crash对于用户来讲是一种最糟糕的体验,它会导致流程中断、app口碑变差、app卸载、用户流失、订单流失等。相关数据显示,当Android
2022年6月13日
自由知乎 自由微博
其他

Android与HEIF格式图片适配方法

格式文件的后缀有两种:.heif和.heic五. 前景并不是每一部手机都将支持这个功能。不支持的原因是硬件配置与专利许可的限制。要使用该技术,手机厂商需要要先支付一大笔专利费用。
2022年6月9日
其他

来了!Android 13 适配指南!

权限」。❝「注意」:这是受到“硬性限制”的权限,除非设备的安装程序针对你的应用将该权限列入了许可名单,否则你的应用将无法获得此权限,如需了解详情,请参阅有关受限权限的指南。❞Intent
2022年6月8日
其他

未请求任何权限的应用就安全了吗?盘点安卓3个高敏感权限!

关注「技术最TOP」,早上8:40不见不散!作者:陈小侠链接:https://juejin.cn/post/7103683992242618381一个非系统的普通应用,通过手机的“应用管理”查看应用权限信息后,发现显示未申请任何权限,但这个应用由可能也是一个高危险的应用。本文介绍安卓里3个高敏感权限,但是申请后却不会显示在应用信息里。前言话说某天正在上班的时候,公司里的一位老员工找到我,让我帮看一下手机,说手机可能中病毒了,老是有很多弹窗广告和多了莫名奇妙的应用。有的应用还无法卸载!一开始听【无法卸载】,我的想法是系统应用,但是他很肯定的告诉我说是最近才安装的应用。得到肯定回复后,我悟了,一定是激活了设备管理器!!!查看后果然是激活了设备管理器,取消激活后,顺利卸载了应用。跟他进一步了解了整个事件过程:开始是收到了包含有链接的短信(大概是和5G有关的内容),他点了短信的链接,跳转了一个页面(浏览器),下载安装了应用,打开应用后,又跳转了其他页面,反正他看不懂,点了确认...经过几天的困扰后,才找到了我。如果你看了此篇文章,不妨也帮家里老人看看手机上有没有异常应用,及时排除,避免信息泄露。当然这里分享的是特殊的权限,通常的就是检查应用有没有非必要但申请了通话记录、定位、通讯录、短信、电话等高危权限,有就关闭权限或卸载应用。下面进入正题一、设备管理器
2022年6月6日
其他

一个解决滑动冲突的新思路,做到视图之间无缝地嵌套滑动!

古嘉明同学https://blog.csdn.net/qq_40987010?type=blog在此文章开始之前,我想抛出一个问题:如何解决滑动冲突?用传统的思路解决,你可能会从
2022年6月1日
其他

Compose 打造炫酷的星球打卡 App

作者:Watermelon02https://juejin.cn/post/7093460817500504100FocusFocus是一款帮助你集中的app——为自己的目标建立星球,将时间投入在上面。花在星球上的每一分钟都会被记录,每颗星球可以定制颜色与外观。为了贯彻简单干净不让人分心的设计理念,app采用白灰为主色调。为了不使界面显得单调,所以增加了不少的动画。https://github.com/Watermelon02/ComposeFocus预览先看看目前的所有功能总的预览吧,使用流程主要就是:创建星球界面设置星球名字,打卡时间和详细描述星球列表界面选中要打卡的星球主界面设置要打卡的时间,开始打卡功能主界面左右滑动
2022年5月30日
其他

【首发】根据壁纸修改App主题,它真的来了

作者:yechaoa链接:https://juejin.cn/post/70931583036849029481、前言曾经产品经理的奇思妙想,现在终于可以实现了...2、效果效果中,原本是红色壁纸对应的红色App主题,在改成绿色壁纸之后,App主题也相应的变成绿色了。模拟器演示略微小卡...3、介绍这个效果主要是使用了Material
2022年5月23日
其他

Android 12 保姆级适配指南

限制造成影响简单讲,就是我们之前在配置通知(Notification)的点按行为时,可能会通过PendingIntent来启动一个Service或BrocastReceiver。而以Android
2022年5月19日
其他

Google IO 2022: Jetpack Compose 最新进展!

https://android-developers.googleblog.com/2022/05/whats-new-in-jetpack-compose.htmlJetpack
2022年5月17日
其他

Google I/O 2022:Jetpack Part-Jetpack 新功能及相关更新!

和用户的当前状态。每当记录报告时都会提供此信息,以便开发人员不仅可以了解问题发生的时间,还可以了解用户当时正在做什么。这有助于识别应用程序中可以解决的问题区域,其中一些状态是由各种
2022年5月16日
其他

深入理解 Android 系统 Back Gesture 的实现

App。整体篇幅挺大,还省略了诸多细节。感兴趣的朋友可以跟踪下整个流程,如果发现错误或笔者错过的重要细节,欢迎留言。---END---推荐阅读:Android
2022年5月13日
其他

Android Studio Chipmunk 发布啦,快来看看有什么更新!

里可以调试每个动画值的时间、暂停、循环、快进或慢放等:image.png还可以使用动画预览来绘制可视化动画曲线,这对于调试动画效果非常有用:image.png另外
2022年5月11日
其他

Android 图形系统概述!

中非常重要的子系统,与其他子系统相互协作,完成图形界面的渲染和显示。概述官方提供了一个图形系统的关键组件协作图,如下所示:这幅图大致描述了图形数据的流转:OpenGL
2022年5月10日
其他

用compose撸一个雷达图

仿酷狗音乐主页面侧滑效果丝滑~Android自定义树状图控件!Android自定义LayoutManager实现可滚动的环形菜单!面经!B站Android面试小记更文不易,点个“在看”支持一下👇
2022年5月7日
其他

Android 最新架构详解 | MVI = 响应式编程 + 单向数据流 + 唯一可信数据源 !

仿酷狗音乐主页面侧滑效果丝滑~Android自定义树状图控件!Android自定义LayoutManager实现可滚动的环形菜单!面经!B站Android面试小记更文不易,点个“在看”支持一下👇
2022年5月6日
其他

功能强大!IntelliJ IDEA 2022.1正式发布

仿酷狗音乐主页面侧滑效果丝滑~Android自定义树状图控件!Android自定义LayoutManager实现可滚动的环形菜单!面经!B站Android面试小记Android
2022年4月29日
其他

四年失去近 8% 的全球市场!Android 丢失的市场,被谁拿走了?

仿酷狗音乐主页面侧滑效果丝滑~Android自定义树状图控件!Android自定义LayoutManager实现可滚动的环形菜单!面经!B站Android面试小记Android
2022年4月27日
其他

自定义View - 仿酷狗音乐主页面侧滑效果

作者:Delusion链接:https://juejin.cn/post/7085922621761519623概述最近在用酷狗音乐时发现酷狗音乐的主页侧滑效果不错,忍不住手痒痒,就想实现一下看看效果分析我们可以看出分为两个部分
2022年4月25日
其他

丝滑~Android自定义树状图控件!

作者:传道士链接:https://juejin.cn/post/7080519395163766791文章目录1、简介2、效果展示3、使用步骤4、实现基本布局流程5、实现自由放缩及拖动6、实现添加删除及节点动画7、实现树状图的回归适应屏幕8、实现拖到编辑树状图结构9、写在最后简介github连接:
2022年4月12日
其他

Android自定义LayoutManager实现可滚动的环形菜单!

作者:fb0122链接:https://juejin.cn/post/7080091488519979015效果首先看一下实现的效果:可以看出,环形菜单的实现有点类似于滚轮效果,滚轮效果比较常见,比如在设置时间的时候就经常会用到滚轮的效果。那么其实通过环形菜单的表现可以将其看作是一个圆形的滚轮,是一种滚轮实现的变式。实现环形菜单的方式比较明确的方式就是两种,一种是自定义View,这种实现方式需要自己处理滚动过程中的绘制,不同item的点击、绑定数据管理等等,优势是可以深层次的定制化,每个步骤都是可控的。另外一种方式是将环形菜单看成是一个环形的List,也就是通过自定义LayoutManager来实现环形效果,这种方式的优势是自定义LayoutManager只需要实现子控件的onLayoutChildren即可,数据绑定也由RecyclerView管理,比较方便。本文主要是通过第二种方式来实现,即自定义LayoutManager的方式。如何实现第一步需要继承RecyclerView.LayoutManager:class
2022年4月7日
其他

面经!B站Android面试小记

ReferenceQueue,加了一些改进点:new一个弱引用的Object,等这个Object确认被回收后再确认Activity是否正常被回收15、Jetpack
2022年3月28日
其他

Android 组件化架构设计从原理到实战!

作者:captain_p链接:https://juejin.cn/post/7068542759027605534为什么需要组件化小项目是不需要组件化的。当一个项目有数十个人开发,编译项目要花费10分钟,修改一个bug就可能会影响到其他业务,小小的改动就需要进行回归测试,如果是这种项目,那么我们需要进行组件化了组件化和模块化在技术架构演进的过程一定是先出现模块化后出现组件化,因为组件化就是解决了模块化的问题。模块化架构创建一个
2022年3月22日
其他

Android 12 自动适配 exported 深入解析避坑

文件是你本地的,那手动修改即可;但如果出现问题的是第三方远程依赖,并且对方并没有提供源码和更新,你就无法直接修改;如果第三方依赖太多,查找哪些出了问题十分费时费力。脚本所以在之前的
2022年3月17日
其他

已投入生产的Android动态切换应用图标方案

作者:下午吃早餐同学链接:https://juejin.cn/post/7018100275336462372动态切换应用图标注意:我公司已采用此方案投入生产,此方案存在缺陷并非完美方案,采用前请评估是否接受缺陷,具体缺陷见文末。效果图产品需求市面上很多App能根据特定活动,动态切换应用图标达到宣传目的,例如淘宝双十一,国庆节等等。那么我们怎样才能在不发新版本的情况下,动态切换应用图标呢?具体方案1.图标更换:在AndroidManifest设置应用入口Activity的别名,然后通过setComponentEnabledSetting动态启用或禁用别名进行图标切换2.控制图标显示:冷启动App时,调用接口判断是否需要切换icon
2022年3月15日
其他

写给Android工程师的AOP知识!

Program的首字母缩写,翻译过来就是面向切面编程。这个概念中面向容易理解,编程可以理解,最关键的是切面是指什么?在理解切面之前,先回顾一下我们熟悉的OOP(Object-Oriented
2022年3月9日
其他

为何推荐在自定义View中抽Drawable!

···省略代码···}Drawable除了是个抽象类外,还有四个抽象方法需要被实现,分别是:setAlpha:为Drawable指定一个alpha值,0
2022年2月28日
其他

安装一个 apk 引起的无法开机!

作者:Android_XG链接:juejin.cn/post/7054432221553246216故事的开始今天老大急冲冲的跑过来说:xx,你帮我看看这手机咋回事,突然开不了机。我心想:我最近也没提过代码,应该不是我的问题吧。(甩锅~.~)把电脑插上手机后,我看到下面这段报错一直在loop12-31
2022年2月24日
其他

Kotlin flow实践总结!

CResult()}测试验证写个TestRepositity,实现CacheRepositity的抽象方法。通过delay延迟耗时来模拟各种场景,观察日志的输出顺序。private
2022年2月21日
其他

来了,Android 13首个开发者预览版!

中继续加强了隐私和安全保护,新版本中具有一个全新的系统范围内的照片和视频选择器,它允许让用户选择应用程序能够访问的个别照片或视频,而不是相册中的所有内容。想要使用这一功能的开发者将能够通过一个新的
2022年2月18日
其他

Android自定义View实现图形验证~

最近看到了一个图形验证的原型感觉挺不错的,顺带再熟练下自定义View于是就用了几个小时写了一个图形验证的控件,在这做个记录,原型如下(是墨刀素材里找的)实现效果
2022年2月15日
其他

Jetpack—LiveData组件的缺陷以及应对策略!

一、前言为了解决Android-App开发以来一直存在的架构设计混乱的问题,谷歌推出了Jetpack-MVVM的全家桶解决方案。作为整个解决方案的核心-LiveData,以其生命周期安全,内存安全等优点,甚至有逐步取代EventBus,RxJava作为Android端状态分发组件的趋势。官网商城app团队在深度使用LiveData的过程中,也遇到了一些困难,尤其是在LiveData的观察者使用上踩到了不少坑,我们把这些经验在这里做一次总结与分享。二、Observer到底可以接收多少次回调2.1
2022年2月11日
其他

2021年总结,断更大半年,回了重庆,进了大厂!

哈喽,大家好,我是西哥,转眼又是一年,趁着春节前的最后一个周末,回顾一下过去的一年,做一个简单的总结。其实也不算是总结,就是聊一聊自己过去这一年的一些经历、感想和近况吧。今天翻了一下掘金主页,发现上一次发文已是9个月之前了,断更了大半年。上一次发文写的是Jetpack
2022年1月25日
其他

用更优雅的技术方案实现应用内多弹窗效果!

作者:首席网管地址:https://www.jianshu.com/u/e81db6c18dd01.背景通过观察众多知名app我们可以发现,在app启动进入首页的时候,我们一般会遇到以下几种弹窗:app更新升级提示弹窗、青少年模式切换弹窗、某活动引导弹窗、某新功能引导弹窗、白日\黑夜模式切换弹窗......弹出一个,点击消失,又弹出另一个......针对单个弹窗而言,它既有自身弹出的条件,又有弹出时机的优先级......在开发中面对众多弹窗的时候,我们该如何实现呢?有人说这好办,在DialogA注册onDismissListener编写DialogB弹出的条件、在DialogB注册onDismissListener编写DialogC弹出的条件、以此类推实现DialogD、E、F......伪代码如下:class
2021年12月31日
其他

卷起来了!Android OpenGL 仿自如 APP 裸眼 3D 效果

SensorManager.SENSOR_DELAY_GAME);mSensorManager.registerListener(mSensorEventListener,
2021年12月27日
其他

用了20多张图终于把协程上下文CoroutineContext彻底搞懂了

CoroutineContext.get方法源码(整理在一起,下同)使用方式讲解通过Key检索Element。返回值只能是Element或者null,链表节点中的元素值。Element
2021年12月24日
其他

Android 自定义 仿BiliBili 图片3D切换效果

0再判断当前View是当前页,还是下一页,如果是当前页那么是相对布局的右边倾斜,如果是当前页的下一页那么应该相对布局的左边倾斜。再将计算出的值设置到我们自定义的BliConstraintLayout
2021年12月22日
其他

Android模块化开发实践

module和多个模块module组成。如图:多工程模式:每个模块代码位于一个工程中,整个项目由一个主模块工程和多个子模块工程组成。其中主模块工程只有一个App
2021年12月20日