安卓开发精选

其他

未勾选用户协议、隐私政策实现抖动效果

产品看到别家的app,未勾选协议的时候,会给用户一个抖动效果的提示,感觉不错,然后看了看自家的app,不行,没有抖动,不能很明显表示,于是需求出来了,用户未勾选的时候,给个抖动效果。(
2021年7月13日
其他

已开源!Flutter 流畅度优化组件 Keframe

对于非列表场景,一般不存在流畅度问题,不过在初次进入的时候任然可能出现卡顿。同样的,可以将复杂的模块分到不同帧渲染,避免初次进入的卡顿。例如,我们将为优化例子中底部的操作区域嵌套分帧组件:
2021年7月11日
其他

谷歌弃用 APK 格式!替代品 AAB 有何优势?

APK,即包含语言包、代码等在内的所有资源。不论用户身处何处、使用何种规格的设备,只需下载这个通用
2021年7月9日
其他

okhttp文件上传失败,居然是Android Studio背锅?太难了~

}可以确定它就是一个网络监控器,但它是不是AS的网络监听器,我却还持怀疑态度,因为我这个项目没开启Profiler分析器,但我最近在开发room数据库相关功能,开启了数据分析器Database
2021年7月7日
其他

谷歌应用商店用 AAB 取代 APK

https://www.solidot.org/story?sid=68182
2021年7月5日
其他

Android TV 开发一览

电视用户的话,需要限制用户那块可以点击,那块不可以,这就需要用遥控器的上下左右跳转来限制View能否或得焦点。并需要时时刻刻需要告诉用户目前的焦点处于什么位置,方便进行接下来的操作。
2021年7月3日
其他

Flutter 延迟加载组件:包体积优化、动态化

Hi,我是Nayuta,这里是进击的Flutter(开发者),为你构建最详细的Flutter进阶与优化指南。关注我,获取我的最新文章~
2021年6月29日
其他

一次生产环境 NPE 崩溃的排查记录

涉及Activity重建,那估计也跟Fragment生命周期,Fragment多层嵌套之类的脱不了干系,在BaseActivity和BaseFragment中把生命周期相关的回调都加上日志。
2021年6月27日
其他

Jetpack太香了,系统App也想用,怎么办?

"repository/com/google/dagger/dagger-google-java-format/1.6/google-java-format-1.6-all-deps.jar",
2021年6月25日
其他

卡顿、ANR、死锁,线上如何监控?

最近参加了几轮面试,发现很多5-7年工作经验的候选人在性能优化这一块,基本上只能说出传统的分析方式,例如ANR分析,是通过查看/data/anr/
2021年6月22日
其他

Android修炼:Lottie是如何解放了开发的双手?

setCompositionTask(LottieCompositionFactory.fromJsonInputStream(stream,
2021年6月20日
其他

组件化开花,就问你香不香

ARouter.getInstance().navigation(IAccountService.class);accountService.login(activity);AccountBean
2021年6月17日
其他

一道面试题:Glide 做了哪些优化?

Glide默认开启内存缓存,我们也可以通过skipMemoryCache关闭上面我们可以看到内存缓存其实分两个部分,ActiveResource缓存与LRU缓存ActiveResources
2021年6月15日
自由知乎 自由微博
其他

公司到底能不能监控到微信聊天?

微信网页版:使用公司网络,公司可以看到聊天内容,无论使用的是公司电脑还是个人电脑。但是如果使用4G网络,流量没走公司,公司自然也无法看到聊天内容。
2021年6月12日
其他

聊一聊关于 Glide 在面试中的那些事

内部用LinkHashMap存取数据,在双向链表保证数据新旧顺序的前提下,设置一个最大内存,往里面put数据的时候,当数据达到最大内存的时候,将最老的数据移除掉,保证内存不超过设定的最大值。
2021年6月11日
其他

你真的懂 Fragment 吗?AndroidX Fragment 核心原理分析

onDetach-------------------------------------------------回到桌面:Activity
2021年6月9日
其他

中国操作系统变迁史,鸿蒙之前的尸骨

约会最富洞见的商业思想,敲开最具硬核的商业案例,还原最有温度的商业人物
2021年6月7日
其他

开发者展示 OpenHarmony 纯净版系统:与华为鸿蒙截然不同

尝试编译并在润和hi3516dv300开发板上进行了烧录,从他分享的系统画面来看,OpenHarmony和目前运行在手机、平板上的鸿蒙并不相同,明显简陋很多。
2021年6月5日
其他

你需要了解的 APP 安全

以下通过charles抓某个APP包的检测更新功能性数据包,可以看到抓包的数据看到具体通信的功能,攻击者可以通过对这些包进行分析伪造假的数据包等进行做影响APP安全的事情。
2021年6月4日
其他

补齐 Android 技能树:从害怕到玩转代码混淆

./build/outputs/mapping/usage.txt复制代码5、D8干了啥?接着跟下源码,康康D8具体都做了啥,在上一节《补齐Android技能树——从AGP构建过程到APK打包过程》
2021年6月2日
其他

带你深入 Dart 解析一个有趣的引用和编译实验

contents.{core::List::add}([@vm.call-site-attributes.metadata=receiverType:library
2021年5月30日
其他

Git 各指令的本质,真是通俗易懂啊

打个比方:"巴拉巴拉写了一大堆代码,突然发现写的有问题,我想回到一个小时之前",对于这种情况Git的优势就很明显了,因为commit的成本比较小并且本地会保存所有的提交记录,随时随刻可以进行回退。
2021年5月28日
其他

拒绝魔改,Flutter 动态配置多环境

--dart-define=DART_DEFINE_APP_ENV=debug注意,这里的DART_DEFINE_APP_ENV和debug是和env_config里的对应的。
2021年5月26日
其他

一道面试题:ViewPager中的Framgent如何实现懒加载?

当被设置为FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT时,会通过setMaxLifecycle
2021年5月24日
其他

Android Studio 4.2 现已发布

https://android-developers.googleblog.com/2020/12/announcing-android-gradle-plugin.html
2021年5月21日
其他

Android 12 重磅登场

中,用户能够使用自定义调色板和重新设计的小部件制定完全个性化的手机,主调颜色的选取将应用于整个操作系统,包括通知栏、锁定屏幕、音量控件、新设计的小部件等。
2021年5月19日
其他

RecyclerView 性能优化:把加载表项耗时减半(3)

}}绘制图片图片的加载就要复杂很多。如何异步获取图片?如何绘制图片?即使解决了这两个问题,如果没有办法做到局部刷新,那当图片显示时,布局中的文字也会跟着闪一下。(欢迎有思路的小伙伴留言)
2021年5月17日
其他

Android 添加水印功能

(!Environment.MEDIA_MOUNTED.equals(EnvironmentCompat.getStorageState(tempFile)))
2021年5月16日
其他

华为败诉,“鸿蒙”商标申请被驳回

1、2010年12月,北京海岸鸿蒙标准物质技术有限责任公司申请了包含“鸿蒙”字样的图形文字组合商标“CRM鸿蒙”,这家公司的服务范围见下图。
2021年5月14日
其他

12 年!Android 系统的漫漫设计路

其次,所有界面元素看起来都很大,且对比度很高,不要忘记屏幕尺寸很小,大约为8.1厘米。还有一点也很出人意料,这一部(也是第一部)Android手机配备了物理键盘,没有虚拟键盘功能:
2021年5月11日
其他

源码篇:ThreadLocal的奇思妙想

}}在此处你可能又有疑问了,这东西不就是一个数组吗?怎么和环形结构扯上关系了?数组正常情况下确实是下面的这种结构但是,ThreadLocalMap类里面,有个方法做了一个骚操作,看下代码public
2021年5月9日
其他

RecyclerView 的滚动是怎么实现的?

Activity。然后根据界面的层级结构,一层层地分发到RecyclerView.onTouchEvent(),走到这里,我们关心的列表滑动逻辑就一下子全部展现在面前,将这个布局再放大看一下:
2021年5月7日
其他

Google 宣布 Kotlin-first 已四年,为什么 Java 开发者仍不买账?

对于这种情况,我们建议“在工作中边学边用”(以编码道场、午餐研讨会等形式),以创造一个安全的环境,让这种实验得以发生。这种方法允许团队评估他们对Java的使用情况,以及是否值得投资于Kotlin。
2021年5月5日
其他

RecyclerView 性能优化:把加载表项耗时减半(2)

这种场景,也不失为一种优化加载速度的方法,即将可能显示在首屏的表项都合并一个新的表项类型,当下拉刷新时,还是正常的一个个加载原有的表项。
2021年5月3日
其他

引入Jetpack架构后,你的App会发生哪些变化?

就要时时刻刻保证最新状态分发到视图层,这让我不禁想到了LiveData,数据的承载以及分发交给Livedata,而ViewModel专注于托管LiveData保证不丢失,二者搭配简直是天作之合。
2021年5月1日
其他

关于Android架构,你是否还在生搬硬套?

在软件工程的背景下,改动就会有出错的可能,不要说"我注意一点就不会出错"这种话,因为人不是机器。我们能做的就是尽可能让模块更加单一,职责越单一影响到外层模块的可能性就越小,这样出错的概率也就越低。
2021年4月29日
其他

RecyclerView 性能优化:把加载表项耗时减半(1)

列,每一列表示一个关键节点的时间戳,比如PerformTraversalsStart表示绘制遍历的开始时间点,DrawStart表示onDraw()开始的时间点,前者减去后者表示measure
2021年4月27日
其他

Kotlin 协程是个什么东西?

非阻塞式挂起的一个前提是:涉及的必须是多线程的操作。因为阻塞的概念是针对单线程而言的。当我们切换了线程,那肯定是非阻塞的,因为耗时的操作跑到别的线程了,原来的线程就自由了,该干嘛干嘛呗~
2021年4月25日
其他

requestLayout竟然涉及到这么多知识点

至此第一层里面留下的小悬念也得以解开,因为不会执行View.layout()方法,所以PFLAG_FORCE_LAYOUT不会被清除,导致接下来的requestLayout方法不会层层往上调用。
2021年4月23日
其他

应用性能优化之VerifyClass

LoadingClass旨在把Class从Dex加载到虚拟机中,但不涉及类的使用或执行流程。InitializingClass旨在保证使用类前已经经过了初始化流程,此流程嵌入类的使用或执行过程中。
2021年4月21日
其他

一道面试题:ViewModel为什么横竖屏切换时不销毁?

});FragmentActivity#getViewModelStore()FragmentActivity实现了ViewModelStoreOwner的getViewModelStore方法
2021年4月19日
其他

Android组件化实战之利用Maven优雅地调试SDK

https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warningsBUILD
2021年4月17日
其他

Flutter 中如何优雅的实现多渠道打包?

--dart-define=OTHER_VAR=Dart查看结果这里可以看到已经把对应的参数内容现实出来了,接下来就是具体业务层怎么来使用的问题了,下面内容也会介绍使用场景,继续往下看👇
2021年4月15日
其他

解读 Flutter 全平台开发的误解与偏见

因为不同于手机,桌面端大部分时候界面布局和手机端本身就存在较大差异,甚至桌面端的界面通常是可大小调节,另外桌面端应用的输入和控件焦点主要来源于鼠标,所以回归到最前面的那段话“不重写的情况下扩展到
2021年4月13日
其他

安利篇:Kotlin高阶函数与特性,让代码飞起

//强行认定user不为空,当user为空时会抛出NullPointException如果我们在声明变量或参数的时候,在类型后面不加**"?"**,则表示这个对象不允许为空,变量的声明如下:
2021年4月11日
其他

7 个你应该知道的Gradle 实用技巧

上面介绍的方法使用的是buildSrc,使用起来比较方便不过它的缺点在于构建速度上会慢一些,使用includeBuild可以实现同样的效果两者实现的最终效果是差不多的详细实现可见:【奇技淫巧】除了
2021年4月9日
其他

我们饭碗保住了!谷歌胜,甲骨文败

获得不菲的利润,但这些利润本来可以流向大量掌握了这些接口的人能创造出的新的应用之中。因此这种锁定是和版权的本意相违背的。(第34页)(翻译引自微博网友@木遥)
2021年4月7日
其他

什么?你的签名校验形同虚设……

通过上面的语句我们可以知道,这只是一个简单的equals()比较,之后我们打开相应的smali文件,搜索"F010AF8CFE611E1CC74845F80266",定位签名校验的反编译代码位置:
2021年4月6日
其他

扫描 APK 敏感信息,让你的 APP 更“安全”

可以使用-p添加自定义JSON格式的模式,JSON文件描述了敏感信息的搜索规则,如果没有设置,会使用APKLeaks默认的模式。模式文件示例://
2021年4月2日
其他

安卓 Bitmap 高效加载,那些你必须掌握的稀碎知识点

Bitmap.Config中有Bitmap.Config.ALPHA_8、Bitmap.Config.RGB_565、Bitmap.Config.ARGB_4444、
2021年3月31日