例子中AndroidMediaController的功能主要是支持将顶部的toolbar和MediaController绑定在一起,一起show/hide.
在上一篇文章《Android LayoutInflater 源码解析》中我们说到 View 的 inflate 中有一个方法 createViewFromTag,会首先尝试通过 Factory 来 CreateView。
距离 Android 13 发布马上有 3 个月了,各厂都已经开始了适配工作,我司也不例外。但适配前有一个问题需要解决,如果衡量这次适配的工作量,如何统计哪些模块需要改造,并能精确的找到对应模块负责人。
| 导语 众所周知 Android 加载 so 文件本身就是一种运行时动态加载可执行代码的行为,所以把 so 做成动态下发的没有什么技术风险,不过要把这项技术稳定落地到实际生产项目中还是有不少麻烦的问题。本文根据实际项目经验,分享一些 so 动态化关键技术点和需要避免的坑。 需求价值 一般来说,越是成熟的 Android 项目,Native 代码的贡献量就越多,以往 APK 体积的主要占比大都是资源文件,不过现在 Native 代码带来的 so 体积占比也很可观了,所以 so 动态化的价值越来越凸显。另一
最近接到一个需求,需要对公司内部的Android性能测试平台的分支管理模块进行改造。
Gitee地址:https://gitee.com/BytomBlockchain/bytom
大家可以在我的 GitHub 页面找到这个工程:bennyhuo/Android-LuaJavax: Powerful Kotlin style API for Android Lua(https://github.com/bennyhuo/Android-LuaJavax),在提交记录当中可以看到 release 1.0 和 use kts 这两笔提交,前者使用 Groovy 编写 Gradle 脚本,后者使用 Kotlin 编写。
这块知识本身是挺多的,网上有对应的源码分析,本文尽量从不分析代码的角度来把原理阐述清楚。
“8小时内拼工作,8小时外拼成长”这是大家共同的理想。除了每天忙于工作外,我们都希望能更多地区吸收领域内的新知识与新技能,从而走向人生巅峰。 Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师。每周都会举行嘉宾分享,话题讨论等活动。 上一期我们邀请了腾讯SNG工程师“王少鸣”分享了《React Native项目实战总结》。 2016-07-14,下周四,我们将邀请腾讯WXG iOS开发工程师“姚海波”为大家分享《微信读书iOS性能优化》。 下面是上一期
本文主要阐述了Lambda表达式及其底层实现(invokedynamic指令)的原理、Android第三方插件RetroLambda对其的支持过程、Android官方最新的dex编译器D8对其的编译支持。通过对这三个方面的跟踪分析,以Java 8的代表性特性——Lambda表达式为着眼点,将Android如何兼容Java8的过程分享给大家。
轻量级Flutter渲染引擎的核心是将Flutter作为一个「渲染器」,它的唯一功能就是将Native端传来的数据绘制成相应的界面,其它所有交互操作,都通过Channel桥接到Native端进行处理,这样做的好处有下面几点:
安居客 Android App 距离上次的模块化/组件化重构已经两年多了,重构之后很好的支撑了两年多以来的业务发展。但这个世界总是在向前走的,没有任何一种架构能够一劳永逸的解决所有问题,外部环境的不断变化相应的也要求项目架构做出改变,以此来应对环境变化所带来的挑战。
Kotlin有着诸多的特性,比如空指针安全、方法扩展、支持函数式编程、丰富的语法糖等。这些特性使得Kotlin的代码比Java简洁优雅许多,提高了代码的可读性和可维护性,节省了开发时间,提高了开发效率。这也是我们团队转向Kotlin的原因,但是在实际的使用过程中,我们发现看似写法简单的Kotlin代码,可能隐藏着不容忽视的额外开销。本文剖析了Kotlin的隐藏开销,并就如何避免开销进行了探索和实践。
前段时间研究 Android 端的自动打包,采用的是 Jenkins + Git 的方式,这样,当你 push 完代码之后,Jenkins 会自动拉取你的代码,然后再用 Gradle 工具进行自动化打包,Jenkins 可以配置许多插件,当打包完之后可以自动上传到蒲公英和 fir.im 等平台,特别方便,基本就是这么个流程,我们之前公司是运维帮我们在服务器端搭建的自动打包程序,这样的好处是当你需要打几十个包时,特别快,因为服务器的配置一般比电脑都高,并且不用占用自己电脑的资源。我自己前段时间也在自己的电脑上装了一个 Jenkins,然后一些配置,也可以进行自动化打包,但是我觉得没必要,因为你把代码 push 上去,然后再拉下来,然后再打包,用的还是你本地电脑的资源,还不如直接用 AS 打包来的快,我看了下 Jenkins 上传到公测平台的实现,其实就是用了一个 curl 命令来实现的,我就想着能不能在 Gradle 中配置上传的脚本?答案当然是可以的!
在去年7月发布的Android FFmpeg系列01--编译与集成一文中我们采用的是ndk r21d+FFmpeg5.0.1的版本,一年过去,FFmpeg也迭代到了6.0的版本
Appium自动化(八)通过脚本自动化获取设备deviceName和platformVersion
一、背景 就在项目灰度测试前不久,爆出了在 Android 3.0以下手机上安装时出现 INSTALL _ FAILED_DEXOPT,导致安装失败。这一问题意味着项目将不能在 Android 3.0以下的手机上安装使用,对项目的发布有比较大的影响,所以必须尽快解决。 INSTAL L_FAILED_DEXOPT导致无法安装的问题,从根本上来说,可能是两个原因造成的: (1) 单个 dex 文件方法总数65K 的限制。 (2) Dexopt 的 LinearAlloc 限制。 当 Android 系统安装一
QQ 音乐 Android 团队平台组的负责人阿宝,在和 QQ 音乐一同寻求突破的过程中,他发现创意、研发和平台的助力是让应用进步的三个重要因素。所以,他和团队一直很关注 Google 在 Android 上的技术发展和版本更新,并努力将新系统的新特性加入到 QQ 音乐中,让用户尽早获得最新体验。
不断追求突破的 QQ 音乐,在近 10 年的成长过程中受到了很多用户喜爱。 QQ 音乐 Android 团队平台组的负责人阿宝,在和 QQ 音乐一同寻求突破的过程中,他发现创意、研发和平台的助力是让应用进步的三个重要因素。所以,他和团队一直很关注 Google 在 Android 上的技术发展和版本更新,并努力将新系统的新特性加入到 QQ 音乐中,让用户尽早获得最新体验。 我们来通过☟视频☟了解他们的故事: 阿宝团队里的 Shawn 是 QQ 音乐适配 Android 9 Pie 的工程师,他和同事从 A
C#中我们如果操作过程中出现错误一胜败都用throw抛出异常,然后前端接收到后会直接显示出来服务端抛出的异常是什么。
了解我的读者,经常看我文章的读者,可能都知道,我已经好久没有分享过 Android 相关的干货了,说实话,作为一个以分享 Android 技术起家的公众号来讲,不分享 Android 确实有点过分了。
Google Play 商店在 2021 年第 3、4 季度正式加强对应用 targetSdkVersion 的限制,要求应用必须以 API 级别 30 (Android 11) 或更高版本为目标运行环境。
随着项目逐渐扩展,业务功能越来越多,代码量越来越多,开发人员数量也越来越多。此过程中,你是否有过以下烦恼?
TakePhoto 简介 TakePhoto是一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库,目前最新版本2.0.0。 2.0以下版本及API说明,详见TakePhoto1.0+。 V2.0 支持通过相机拍照获取图片 支持从相册选择图片 支持从文件选择图片 支持对图片进行压缩 支持对图片进行裁剪 支持对裁剪及压缩参数个性化配置 提供自带裁剪工具(可选) 支持智能选取及裁剪异常处理 支持因拍照Activity被回收后的自动恢复 GitHub地址: http
JDFlutter 是商城共享技术部-多端融合技术部推出的新一代跨平台开发框架,可快速集成至现有 Android/iOS 工程,开发者可借助 JDFlutter 平台快速完成 Flutter 业务开发。JDFlutter 平台提供了大多数京东样式 UI 组件库以及丰富的原生 API,可满足复杂业务需求。未来 JDFlutter 会和 JDReact 一起构成京东 ARES 跨端应用开发平台的双引擎!
前面文章《Android SurfaceVeiw划矩形截屏存放到RecyclerView中》已经通过手指划矩形把图片存入到RecyclerView中了,以前也加入过TeseractOCR的识别,因为截取的图像不理解 ,所以识别的效果也不好,所以这次利用截图方式再做一个简单的图像预处理来看看识别效果。
在从0到1实现一个Android路由(2)——URL解析器中,提到过请求拦截,其中有个常见的场景是某个页面是需要登录状态的,那么首先要调到登录页,完成了登录之后再跳转到路由页面,但通常登录页都是跳转到主页面的,这该怎么实现呢?上篇文章中没有解决这个问题,本文主要来解决这个问题。
前面三篇介绍了Jetpack 架构组件中 最重要 的部分:生命周期组件-Lifecycle、感知生命周期的数据组件-LiveData、视图模型组件-ViewModel。 这篇,就来探索下目前android开发中 最优秀、讨论最多的架构模式—— MVVM 。
国内都比较流行开发超级APP,也就是我全都要,什么功能都想加进去,这导致业务逻辑变得越来越复杂.
最近几年移动开发业界兴起了「 插件化技术 」的旋风,各个大厂都推出了自己的插件化框架,各种开源框架都评价自身功能优越性,令人目不暇接。随着公司业务快速发展,项目增多,开发资源却有限,如何能在有限资源内满足需求和项目的增长,同时又能快速响应问题和迭代新需求,这就是一个矛盾点。此时,插件化技术正好风生水起,去了解各个主流框架实现思路,看看能对目前工作是否有帮助,是很有必要的。
一般在游戏进行对外测试的时候都会有一个玩家QQ群,方便玩家反馈问题、交流游戏心得等。那么为了增加玩家加QQ群的欲望,可能会在游戏里面设计一个小功能,点击一下可以直接拉起手Q加群的操作,加了QQ群以后,也会自动下发一些小奖励刺激玩家。原本我以为要拉起手Q加QQ群的操作一定要接入相关平台的SDK才行,直到我详细地阅读了下腾讯官网的QQ群官方主页,我才了解到在游戏内拉起手Q发起加群的操作是如此的简单,根本不需要接入任何第三方SDK,只需短短几行代码即可轻松实现。闲言少叙,书归正文,咱们马上就开始实际操作一下。
1 . 数据绑定作用 : 不使用 Java 代码 , 直接在 layout 布局文件 中完成组件的 文本 , 图片 等数据 的设置 ;
腾讯开心鼠项目使用的游戏引擎是 Cocos Creator,由于引擎提供的视频组件实现方式问题导致视频组件和游戏界面分了层,从而导致了以下若干问题:
在这个过程中一直强调了组件化的一个基础设施:路由!没有它组件化可以说是寸步难行,本篇文章我们就来谈谈一个组件化路由框架诞生过程中的那些思考。
如果想要注解处理器能够在编译器生成代码,需要做一个配置说明,这里有两种配置方法: 具体参考这篇文章:Java AbstractProcessor实现自定义ButterKnife
简述: 这应该是2019年的第一篇文章了,临近过年回家一个月需求是真的很多,正如康少说的那样,一年的需求几乎都在最后一两月写完了。所以写文章也搁置了很久,当然再忙每天都会刷掘金。很久就一直在使用Kotlin写项目,说实话到目前为止Kotlin用的是越来越顺手了(心里只能用美滋滋来形容了)。当然这次依然讲的是Kotlin,说下我这次需求开发中自己一些思考和实践。其中让自己感受最深的就是: "Don't Repeat Yourself"。当你经常写一些重复性的代码,不妨停下来想下是否要去改变这样一种状态。
某日,解决完一个线上 bug 后,我冒出了一个念头:让我们的 SDK 也具有热修复的能力呗!
最近很多公司都面临和我们一样的难题,配合网信办进行隐私权限整改。主要涉及到在用户同意隐私权限授权之前,禁止调用敏感的api,具体比如imei,androidid,ip,macaddress等等。
众所周知,Android 是一个开源的系统,从它诞生的那一刻起,Android 系统被逐步应用在了各种各样的硬件设备中。随着移动互联网和移动支付的兴起,传统 POS 机也开始逐渐被 Android 系统加持下的智能 POS 机所取代。
背景 近期,微信小游戏支持了视频号一键开播,将微信升级到最新版本,打开腾讯系小游戏(如跳一跳、欢乐斗地主等),在右上角菜单就可以看到发起直播的按钮一键成为游戏主播了: 微信小游戏出于性能和安全等一系列考虑,运行在一个独立的进程中,在该环境中不会初始化视频号直播相关的模块,这就意味着小游戏的音视频数据必须跨进程传输到主进程进行推流,给我们实现小游戏直播带来了一系列挑战。 视频采集推流 录屏采集? 小游戏直播本质上就是把主播手机屏幕上的内容展示给观众,自然而然地我们可以想到采用系统的录屏接口Media
国内Android动态化方案已经蓬勃发展数年之久,在React Natvie、Flutter这些跨平台方案未出现之前,类似Atlas、Replugin、DLA等Android动态化方案在业界独领风骚。在国内动态化方案也分为两个流派:组件化与插件化。比如Atlas自称为组件化方案,另外诸如Replugin、DroidPlugin等称为插件化方案。本文不具体说明组件化与插件化区别相关介绍文章已多入牛毛,这里就不再赘述。
在Android 10 中,Google首次引入了分区存储。分区存储是需要以 Android 10 为目标平台,系统默认强制执行。
企业微信本地部署版(下文简称为本地版)是从2017年起,脱胎于企业微信的一款产品。本地版的后台服务能独立部署在政府或者大型企业的本地服务器上。在一个已经迭代了7年的大型Android端工程中,企业微信本地版不可避免地会暴露出一些遗留系统的特点。
2021年11月1《个人信息保护法》正式施行,标志信息保护进入强监管时代,APP监管被提升到前所未有的高度,数据安全、用户隐私、甚至功能体验等各个方面都出台了相应的规则规范,监管的初衷是:从各个层面保障用户的权益,避免用户的隐私、体验、数据被滥用,甚至威胁国家安全,一旦违规被查处面临的惩罚是非常严厉的,因此产品运营方必须高度重视。一方面,在产品设计、开发阶段就要充分考虑并满足各种监管要求;另一方面,一旦查出隐患问题,要积极响应,及时整改,否则可能面临工信部通报,甚至全面下架风险,首当其冲的一块是:APP隐私合规。
系统上云是科技企业及传统企业降本增效、协同办公等有效的助力方式。本文将京东mPaaS平台下的Aura平台(Android组件平台)在T-PaaS环境进行私有化部署改造的历程记录下来,分享给大家。
喊了好长时间要做鸿蒙应用,自己也写了一点,但要同时照顾三个移动平台有点恶心,大致看了一下鸿蒙社区的 arkui-x 跨平台方案 https://gitee.com/arkui-x[1] ,先调研一下试试水
领取专属 10元无门槛券
手把手带您无忧上云