![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android应用
文章平均质量分 82
yihanss
这个作者很懒,什么都没留下…
展开
-
Android登录拦截场景-多种实现方式
登录拦截与放行是大部分App开发都会遇到的一个场景,如果你的App有游客模式,但是部分高级功能需要登录之后才能使用。那么我们就需要在用户点击这个操作的时候校验是否登录,当登录完成之后再跳转到指定的页面或弹窗。如果这些入口很多的话,那么我们就需要到处写这些逻辑。比较初级的用法是使用消息总线,当登录完成之后发送对应key消息,然后去完成对应key的事件。原创 2022-11-30 19:11:49 · 397 阅读 · 0 评论 -
我的flutter学习路线,带你一步步进阶成flutter开发工程师
Flutter是Google的UI工具包,可以用同一个代码为移动端、桌面端和嵌入式设备等来构建本机编译的应用程序,它使用dart作为编程语言,具有广泛的平台支持(Android、iOS、Windows、macOS、Linux、嵌入式等),还有热加载更新等其他功能等你挖掘!这里给大家分享一下我的学习路线:第1步:Flutter使用Dart语言,Dart使用的是OOP概念,要先对这方面有一个整体性认识。是个好的方法,可以帮助我们更容易地理解Flutter。步入正题,我们首先应该。原创 2022-11-29 21:48:48 · 1655 阅读 · 0 评论 -
Android软键盘高度控制的几种方案
要说获取软键盘的高度,那么肯定离不开getViewTreeObserver().addOnGlobalLayoutListener 的方式。只是使用起来又分不同的做法,最简单的是拿到Activity的ContentView,设置contentView.getViewTreeObserver() .addOnGlobalLayoutListener(onGlobalLayoutListener);然后在监听内部再通过 decorView.getWindowVisible转载 2022-11-26 21:47:13 · 3330 阅读 · 0 评论 -
Android View 绘制流程之DecorView与ViewRootImpl
可以看出,里面调用了mWindow的setContentView方法,那么这个"mWindow"是什么?再追踪,发现mWindow是Window类型的,但他是一个抽象类,setContentView也是抽象方法,所以我们要找到Window的实现类。发现在Activit的attach方法中原创 2022-11-24 17:03:10 · 490 阅读 · 0 评论 -
Android事件分发机制与核心用法
事件指的是屏幕触发事件——即Android中的TouchEvent/MotionEvent。每一次我们触摸屏幕,都会产生一连串的触摸事件,这些一连串的触摸事件合起来就是一个触摸事件序列。触摸事件在Android官方API中由类MotionEvent来描述,不同的触摸事件对应不同的事件类型。事件类型分别有ACTION_DOWN、ACTION_UP、ACTION_MOVE、ACTION_CANCEL。原创 2022-11-23 16:10:29 · 387 阅读 · 0 评论 -
Android程序员“越老越吃香”的背后,有这样一个先决条件
早在今年1024程序员节的时候,360的创始人周鸿祎就提到了“程序员越老越吃香”的话题。对于这个问题我们应该辩证来看待。对于一般的Android开发工作,年轻人有更多的时间和精力去学习,也有更多的发展可能性,不过对于更深入的技术架构等内容,有资深经验的程序员自然会做得更好,也就是上面所说的“越老越吃香”。目前国内大多数Android程序员还是倾向于去互联网公司,在这当中,。。原创 2022-11-22 17:51:04 · 446 阅读 · 0 评论 -
Android 之注解、APT技术
在编译期识别自定义的注解然后根据规则生成对应代码。生成代码其实是靠 Filer 这个类,但是代码里的方式不太灵活。可以使用 JavaPoet 库来帮助生成代码。● 创建一个 Java Module 名为 apt-test-annotation。● 创建一个 Java Module 名为 apt-test-processor。● 创建一个 Android Module 名为 apt-test-api。原创 2022-11-18 17:38:51 · 209 阅读 · 0 评论 -
Android插件化指南
插件化技术最初源于免安装运行 Apk的想法,这个免安装的 Apk 就可以理解为插件,而支持插件的 app 我们一般叫 宿主。在 Android 系统中,应用是以 Apk 的形式存在的,应用都需要安装才能使用。但实际上 Android 系统安装应用的方式相当简单,其实就是把应用 Apk 拷贝到系统不同的目录下、然后把 so 解压出来而已。常见的应用安装目录:/system/app:系统应用/system/priv-app:系统应用/data/app:用户应用。原创 2022-11-16 16:39:21 · 1369 阅读 · 0 评论 -
Android应用程序签名和Zipalign
Android应用程序可以使用各种编程语言和开发程序来创建。这些Android应用程序通过各种渠道发布,并安装在Android设备上。为了构建一个完整的Andrioid应用程序,需要一个签名过程来标识应用程序创建者。通常,开发程序会自动执行此操作,因此不需要额外的工作。但是,如果您将LIAPP等安全服务应用于应用程序,则应用程序包将更改,并且您必须手动对其进行签名。原创 2022-11-14 11:17:10 · 937 阅读 · 0 评论 -
Android依赖导入全攻略
在我们开发安卓项目的时候,不会所有的功能都自己去造轮子,经常要使用到各种的其他包,其中有谷歌给我们提供的各种support包,也有各种第三方的功能库,有时候我们自己也会将一些功能封装成包。这些包存在和导入的形式也多种多样,有远程仓库的,有直接拷贝到本地的,jar包、aar包、so包等。所幸我们都可以在主工程和各个Module的里进行统一管理。本文将在Android Studio3.0环境下来汇总下这些用法。原创 2022-11-09 22:33:47 · 1791 阅读 · 0 评论 -
Android扫描多媒体文件剖析
这篇文章从系统源代码分析,讲述如何将程序创建的多媒体文件加入系统的媒体库,如何从媒体库删除,以及大多数程序开发者经常遇到的无法添加到媒体库的问题等。本人将通过对源代码的分析,一一解释这些问题。原创 2022-11-07 21:10:21 · 346 阅读 · 0 评论 -
InputManagerService: 创建与启动
IMS 的启动流程分为三步创建输入系统,建立上层与底层的映射关系。启动输入系统,其实就是启动底层输入系统的几个模块。输入系统就绪,上层会同步一些配置给底层输入系统。下面分三个模块,分别讲解这三步。原创 2022-11-06 23:27:58 · 165 阅读 · 0 评论 -
Android WorkManager定时任务
App有时可能需要定期运行某些工作。例如,可能要定期备份数据、上传信息到服务器,定期获取新的内容等等。在app运行期间,我们使用Handler也可以完成定期的功能。在这里我们介绍WorkManager使用定时任务的方法。前面我们介绍了WorkManager的使用方法,约束和延迟等。本文介绍WorkManager的定时任务。如何创建定时任务,查看任务状态,取消任务。本文使用kotlin注意:可以定义的最短重复间隔是 15 分钟(与 JobScheduler API 相同)。原创 2022-11-04 20:41:51 · 1209 阅读 · 1 评论 -
Android 应用换肤方案
实现方式是:用户提前自定义一些主题,然后当设置主题的时候将指定主题对应的 id 记录到本地文件中,当 Activity RESUME 的时候,判断 Activity 当前的主题是否和之前设置的主题一致,不一致的话就调用当前 Activity 的recreate()方法进行重建。这种引用方式的好处是只要切换了主题这些自定义属性可以动态发生变化。原创 2022-10-20 18:03:47 · 1493 阅读 · 0 评论 -
Android中的启动屏幕
初始屏幕(也称为启动屏幕)在加载移动应用时提供简单的初始体验。它们为应用程序设置了舞台,同时为加载应用引擎和初始化应用留出了时间。例:当用户启动应用时,将发生以下事件:系统使用主题和您定义的任何动画显示初始屏幕。当应用准备就绪时,初始屏幕将关闭并显示应用。动画的元素由安卓清单中的 XML 资源文件定义。每种都有浅色和深色模式版本。默认情况下,初始屏幕使用主题的窗口背景(如果它是单一颜色)和启动器图标。初始屏幕的自定义是通过向应用主题添加属性来完成的。原创 2022-10-18 16:39:28 · 489 阅读 · 0 评论 -
用Dialog实现android 8种对话框
Android提供了丰富的Dialog函数,本文介绍常用的8种对话框的使用方法,包括普通、列表、单选、多选、等待、进度条、编辑、自定义等多种形式。有时,我们希望在对话框创建或关闭时完成一些特定的功能,这需要复写Dialog的create()、show()、dismiss()等方法。原创 2022-10-16 13:33:08 · 676 阅读 · 0 评论 -
安卓睡眠 API 教程
在本教程中,您将学习如何与 Android 睡眠 API 交互,并对系统发送的事件流做出反应。Android 睡眠 API 会收集周围的亮度和设备移动等信息,以对用户何时处于睡眠或清醒状态做出假设。此API可用于跟踪用户的睡眠模式,以帮助他们改善睡眠习惯。在构建简单的睡眠跟踪应用程序时,您将如何:为应用请求“活动识别”权限。注册睡眠接收器以过滤和分析设备检测到的不同事件。原创 2022-10-14 19:07:59 · 810 阅读 · 1 评论 -
Android中的Style和Theme
Style和Theme主要是用于对Android应用进行美化设计,优化交互页面,充分利用各种样式和主题资源,可以开发出各种风格的Android应用。原创 2022-10-13 21:08:44 · 100 阅读 · 0 评论 -
Android中的异步任务AsyncTask
AsyncTask,即异步任务,是Android给我们提供的一个处理异步任务的类.通过此类,可以实现UI线程和后台线程进行通讯,后台线程执行异步任务,并把结果返回给UI线程.原创 2022-10-11 18:33:58 · 488 阅读 · 0 评论 -
Android 亮度调节的方法
整体上看,Android亮度调节分为三个层次,分别是:Android系统亮度调节、Android App亮度调节和Android当前屏幕(Window)亮度调节。原创 2022-10-10 18:09:32 · 4609 阅读 · 1 评论 -
设置 Jetpack Compose 1.2.1
Jetpack Compose 是新的 Android 的现代工具包,用于以惊人的速度构建美观且强大的 UI。使用 Jetpack Compose 设计 UI 遵循声明性和直观的方法,这意味着您只需向框架描述您想要的内容,而其余部分则负责绘制 UI。Jetpack Compose 的有趣之处在于它需要 Kotlin,因此您应该在继续之前将其添加到您的技能集中。在本文中,我们设置了 Jetpack Compose 1.2.1,只是为了让您快速上手体验它。原创 2022-08-20 09:23:35 · 334 阅读 · 0 评论 -
如何在 Android 应用中向 CardView 添加滑动动画
如果您正在构建一个 Android 应用程序,您应该考虑添加动画。它们可以改善您应用的用户体验并提高留存率。这些天来,如果你看到一个没有动画的应用程序,你会觉得它很奇怪而且过时了。由于交互式体验是一种新规范,因此您需要想办法让您的应用与众不同。...原创 2022-08-12 11:13:43 · 469 阅读 · 0 评论 -
在 Android 中使用微光效果占位符
为了在我们的应用程序打开后立即开始闪烁效果,我们在onResume()活动生命周期方法中添加shimmerFrameLayout.startShimmerAnimation()并在onPause()活动生命周期方法中添加shimmerFrameLayout.stopShimmerAnimation()来。在上面的XML中,需要注意的重要一点是背景颜色应该是灰色或任何非白色的颜色,因为如果背景是白色的,闪烁效果将不可见。最后,在您的项目中添加Internet权限。...原创 2022-07-19 10:18:14 · 608 阅读 · 0 评论