demo使用三种方式完成的多级列表,RecyclerView、ExpandableListView、BaseRecyclerViewAdapterHelper
时间在软件开发中是一个常见的处理需求,包括获取当前时间、时间格式化、时间比较、时间差计算等操作。为了简化开发过程,可以编写一个时间工具类来封装这些常用的时间操作方法。
常见的扫光动效有骨架屏扫光、logo扫光。那么这两种扫光动效的原理是什么,如何实现这两种扫光效果,以及在iOS和Andoird双端实现起来有什么差异,本文会为你揭晓。
随着Android加固技术经过动态加载、不落地加载、指令抽取、java2cpp、VMP等技术不断演进和改进,VMP加固技术成为一种高安全性解决方案。因此,本文将着重介绍一种实现和落地VMP技术的思路,以帮助大家了解其工作原理和应用场景。
在过去几年的直播行业创业风口期中,直播的用户关注度疯狂增长,但用户质量却参差不齐。随着用户新鲜感一过,流失率变得相当严重,各大平台都在竭尽全力防御。然而,留住“凑热闹”的非直播受众用户并不是最关键的问题,而是要找到适合真实直播受众用户的商业化道路,才能保证行业的稳定繁荣。因此,我们需要探索有效的商业化模式,以确保产品的长期发展。
1 屏幕共享功能介绍屏幕共享是指在视频通话或互动直播过程中将屏幕内容以视频的方式分享给其他的观众,以增强互动体验,提高沟通效率。屏幕共享解决方案提升了用户实时视频通话的沟通效率。屏幕共享在如下场景中应用广泛:视频会议场景中,屏幕共享可以将讲话者本地的文件、数据、网页、PPT 等画面分享给其他与会人;在线课堂场景中,屏幕共享可以将老师的课件、笔记、讲课内容等画面展示给学生观看。2 屏幕共享示例源码下
本节开始我们会讲解一些Fragment在实际开发中的一些实例!而本节给大家讲解的是底部导航栏的实现!而基本的底部导航栏方法有很多种,比如全用TextView做,或者用RadioButton,又或者使用TabLayout + RadioButton,当然复杂的情况还是得走外层套布局的方法!本节我们用TextView来做一个底部导航栏的效果,也熟悉下Fragment的使用!1.要实现的效果图以及工程目
本节给大家带来基础UI控件部分的最后一个控件:DrawerLayout,官方给我们提供的一个侧滑菜单控件,和上一节的ViewPager一样,3.0以后引入,低版本使用它,需要v4兼容包,说到侧滑,相信很多人都用过github上的SlidingMenu,不过好像有两个版本,一个是单独的,另一个需要依赖另一个开源项目:ActionBarSherlock;既然Google为我们提供了这个控件,为何不用咧
在Android项目开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。
静态代码分析工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题,从而极大地提高软件可靠性
节省软件开发和测试成本。Android目前主要使用的语言为kotlin、java,所以我们需要尽可能支持这两种语言。
bitmap 工具方法
这几年 Android 新技术的迭代明显加速了,有来自外部跨平台新物种的冲击,有去 Java 化的商业考量,也有 Jetpack 等官方自建平台的加速等多种原因。
作为 Android 开发者,我们需要密切关注的同时也不要盲目跟随,还是要认清趋势,结合项目现状学习。
Adapter类控件是ExpandableListView,就是可折叠的列表,它是ListView的子类, 在ListView的基础上它把应用中的列表项分为几组,每组里又可包含多个列表项。1.相关属性android:childDivider:指定各组内子类表项之间的分隔条,图片不会完全显示, 分离子列表项的是一条直线android:childIndicator:显示在子列表旁边的Drawable对
前言最近在做一个可以根据用户选择的时间,实现微信推送订阅消息的功能,突然想到rabbitmq好像可以实现这个功能,本着试试的心态开始研究,第一个想到的就是使用死信队列死信队列何为死信队列,其实rabbitmq本身并不能实现延迟发送消息的功能,不过因为本身有着队列ttl+死信exchange的机制,可以借助这个机制实现延迟发送消息原理就是,用户发送消息到一个队列上并设置过期时间,但是这个队列没有消费
从本节开始我们来一个个讲解Android中的UI控件,本节给大家带来的UI控件是:TextView(文本框),用于显示文本的一个控件,另外声明一点,我不是翻译API文档,不会一个个属性的去扣,只学实际开发中常用的,有用的,大家遇到感觉到陌生的属性可以查询对应的API!在开始本节内容前,先要介绍下几个单位:dp(dip): device independent pixels(设备独立像素)
这一节我们要讲的UI控件都是跟Adapter(适配器)打交道的,了解并学会使用Adapter很重要, Adapter是用来帮助填充数据的中间桥梁,简单来说就是:将各种数据以合适的形式显示到view上,提供 给用户看!1.MVC模式的简单理解在开始学习Adapter之前我们要来了解下这个MVC模式概念。 举个例子:大型的商业程序通常由多人一同开发完成,比如有人负责操作接口的规划与设计, 有人负责程序
随着移动互联网的快速发展,为满足各类用户及人群的体验需求,移动端的开发者们开发了丰富多彩的体验与功能。同时对于快速控制各类功能的切换、灰度,降级等能力的要求也越来越高,例如通过配置快速打开某个灰度功能,通过配置信息的实时触达关闭某个引起App崩溃的功能等等。因此需要一套具有实时触达配置信息到移动端的能力,低沉本的配置平台来解决。 我们研发了Switchquery配置平台,它是一套具有秒级变更能力,助力业务快速变更,让配置信息在App运行中秒级生效,同时提升配置信息触达率,统一管理的配置平台。
Android 模块化完整方案实现1 模块化实现(module+TheRouter)本套模块化方案实现来源于公司的业务需求,因为公司业务太多,代码越来越臃肿,越来越难维护,为了提升开发效率,减低代码的维护成本,所以采取了模块化开发方案。
既然是模块化开发,必然要考虑到各个module的开发,调试,迭代拓展及维护,module之间不仅需要做到业务代码隔离,还需要方便的跳转(路由引导模块),方便的传递
简介一个APP如果没有页面跳转那么是没有灵魂的,页面跳转的一个常用说法就是Navigator,flutter作为一个最为优秀的前端框架,Navigator肯定是必不可少的,那么在flutter中如何使用Navigator呢?一起来看看吧。flutter中的NavigatorNavigator是flutter中用来导航的关键组件。我们先来看下Navigator的定义:classNavigatorex
我们在日常开发和学习过程中,经常会使用到多线程的场景,其中经常会碰到,我们代码需要等待某个或者多个线程执行完再开始执行,上一篇文章中,我们介绍了通过CountDownLatch类来实现,本文介绍了一种新的方案,CyclicBarrier类的使用
我们在日常开发和学习过程中,经常会使用到多线程的场景,其中经常会碰到,我们代码需要等待某个或者多个线程执行完再开始执行,上一篇文章中,我们介绍了object的wait()和notify(),以及线程的join()方法来实现,本文介绍了一种新的方案,CountDownLatch类的使用和源码初步分析
本文主要讨论安卓开发layout布局文件时的部分优化手段,上一篇文章中中初步介绍了include和merge两种方式,具体可参考 https://blog.51cto.com/baorant24/6057402 ,本文主要是介绍安卓布局优化的第三种手段,ViewStub的使用和梳理。
本文主要讲述了Android客户端模块化开发的痛点及解决方案,详细讲解了方案的实现思路和具体实现方法。
主要介绍了kotlin中拓展函数原理以及部分使用上的限制说明
uni-app 中图片转 base64 以及 base64 转图片方式,超简单,超好用的图片转换工具,你值得拥有它。