
Android开发
文章平均质量分 87
精装机械师
这个作者很懒,什么都没留下…
展开
-
玩转bundletool工具之获取aar包信息
玩转bundletool工具,从aar中提取各种信息,可用于制作各种工具类,检查包体是否符合要求等等。原创 2024-07-30 11:02:11 · 1040 阅读 · 0 评论 -
Android 分享数据——分享简单的数据
Android 应用的一大优点就是他们能够相互通信和融合。如果一项功能不是你应用的核心功能,并且在其他应用中已经存在,为何还要再次开发呢?在本篇幅中,将介绍通过 `Intent` 对象使用 `Android Sharesheet` 和 `Intent Resolver` 在应用之间发送和接收简单的数据(例如文本、图片、文件)通用方法。原创 2021-07-08 17:21:12 · 3022 阅读 · 3 评论 -
Google结算库集成避坑指南
一、前言 Google结算库是Google官方提供的Google 支付库,在这之前,需要集成Google内购功能,都是使用 AIDL 的方式调用Google Play,AIDL 方式的调用存在许多问题,容易出现闪退,且此种方式已经长期没有更新。另外,Google也提出废弃 AIDL 方式集成,并给出了必须更新的时间节点(从 2021 年 8 月 2 日起,所有新应用都必须使用结算库版本 3 或更高版本。截至 2021 年 11 月 1 日,对现有应用的所有更新原创 2021-04-09 15:44:29 · 5732 阅读 · 2 评论 -
使用调色板(Palette)API 获取颜色
一、前言 使用调色板 API,可以获取 Bitmap 图片中的颜色,并提供了六个主要颜色配置。可以通过 Palette API 获取图片中的颜色,然后对整个页面的UI主体风格进行设置。例如根据配图色调更改标题栏颜色、文本内容等等。二、使用 调色板(Palette) API 选择颜色2.1 添加 Palette API 支持 Palette API 是一个支持库,需要在项目中添加依赖库才能使用。depende原创 2021-03-10 12:34:51 · 1851 阅读 · 0 评论 -
Android异形屏适配(官方方案)
一、前言 刘海屏,又叫水滴屏、挖孔屏,起初是iOS设备上的杰作,有吐槽,也有赞美。刚出来不久,国内的各大厂商开始效仿,起初官方并没有API进行适配,一些厂商(例如小米、vivo)自己搞了刘海屏,只能用自己的API进行检测适配,这些就是蛋疼的事,不过这篇文章不介绍这些不入流的设备,毕竟从Android 9.0 开始Android官方也出了刘海屏的适配支持,这里主要将官方的(因为现在国内各大厂商出的设备都是基于新系统,都支持官方API检测和适配)二、...原创 2021-02-08 17:17:48 · 11529 阅读 · 0 评论 -
Android动力学动画之弹簧动画(SpringAnimation)
一、前言 Android提供了动力学动画(DynamicAnimation)的支持,这类动画带有物理动力学的相关特性(而不是硬生生的变化),其中弹簧动画(SpringAnimation)就是一种。顾名思义,弹簧动画就是符合弹簧收缩特性的动画。二、...原创 2020-12-25 10:21:31 · 3192 阅读 · 0 评论 -
矢量图像资源详解(Vector drawables)
前言原创 2020-12-02 17:22:40 · 2485 阅读 · 4 评论 -
Android动画之为Drawable图片添加动画
一、前言 在某些情况下,我们需要为图片添加动画效果,比如在用户操作之后,将图标转换成另一张图标。Android 提供了多张方案为 Drawable 添加动画。首先就是使用 AnimationDrawable ,这种方案通过指定多张静态的 Drawable 图片文件组合在一起构成动画(每个时刻只显示一张图片)。另一种就是使用 AnimatedVectorDrawable,这种方案是通过改变矢量图片的属性实现动画。二、使用 AnimationDrawable&原创 2020-11-27 10:54:02 · 3003 阅读 · 0 评论 -
轻松上手Snackbar控件
一、前言 Snackbar 控件是 Material design 产物,它的作用是显示弹出消息,这个系统的 Toast 类似,但是它又有优于 Toast 的地方,它可以添加用户交互,如果需要,它可以一直显示,直至操作取消或者调用取消接口。如果你的应用中有这的场景,那么就可以考虑 Snackbar 这个控件了。二、轻松上手2.1 引入依赖 Snackbar 控件不是系统控件,使用需要引入依赖库:// 如果你原创 2020-09-27 19:40:25 · 1512 阅读 · 0 评论 -
Android RecyclerView从入门到精通
文章目录一、前言二、RecyclerView 使用入门2.1 添加支持库2.2 将 RecyclerView 添加到布局2.3 在代码中引用 RecyclerView 并配置一、前言 在以前的Android开发过程中,列表使用 ListView, 网格使用 GridView。随着Android不断的发展,官方推出了许多性能更优的控件,其中 RecyclerView 就是其中之一。RecyclerView 是 ListView 和 GridView 的更高级版原创 2020-09-08 11:39:00 · 839 阅读 · 0 评论 -
Android MotionLayout详解
文章目录一、前言二、使用入门2.1 引入依赖2.2 创建 MotionLayout 布局文件2.3 创建 MotionScene一、前言 MotionLayout 其实是一种布局类型,可帮助您管理动画。MotionLayout 是 ConstraintLayout的子类(关于 ConstraintLayout 的介绍可以参考: Android ConstraintLayout从入门到精通),因此, MotionLayout 拥有者 ConstraintLay原创 2020-07-22 17:55:37 · 2780 阅读 · 1 评论 -
Android ConstraintLayout从入门到精通
文章目录一、前言一、前言 大家都知道,在Android中是通过布局来定义应用中的界面结构,随着版本的更新迭代,有些布局类型因为适用性退出了历史的舞台,例如:AbsoluteLayout。也增了一些布局类型,例如本文提到的 ConstraintLayout (ConstraintLayout 是 Android Jetpack 的一部分)。 在Android中,布局的嵌套层次过多,会影响UI的绘制性能,降低应用的原创 2020-06-30 17:42:32 · 2268 阅读 · 0 评论 -
Android 应用链接详解
文章目录一、Android 应用链接简介1.1 深层链接和 Android 应用链接1.1.1 深层链接1.1.2 Android 应用链接二、Android 应用链接的使用2.1 添加 Android 应用链接一、Android 应用链接简介 在Android中,可以通过设置 Android 应用链接,以便将用户直接转到链接指向的特定内容,从而绕过应用选择对话框。由于 Android 应用链接利用的是 HTTP 网址以及与网站的关联,因此,如果设备上未安装原创 2020-05-19 18:55:33 · 5438 阅读 · 5 评论 -
Android导航组件Navigation从入门到精通
一、前言 传统的应用开发,一般都是采用一个界面一个 Activity 的形式,但是大家都知道, Activity 在 Android 中是属于重量级的组件,从而导致程序资源消耗大,用户体验不佳。而导航组件 Navigation 采用的是 Fragment 轻量级的组件实现的,可以节省资源,提高用户体验。二、导航简介 &nbs...原创 2020-05-14 17:14:55 · 24349 阅读 · 10 评论 -
Android使用 WorkManager 调度任务
一、前言 WorkManager属于Android Jetpack的一部分,通过WorkManager API可以轻松第调度可延迟的任务,即使是那些在应用退出或者设备重启时仍需要运行的任务。WorkManager的主要功能最高可向后兼容到 API 14在 API 23 及以上级别的设备上运行使用 JobScheduler实现在 API ...原创 2020-04-22 19:25:16 · 9343 阅读 · 2 评论 -
Android中的神器-放大镜
文章目录一、前言二、放大镜的使用2.1 API调用2.2 在用户交互中使用放大镜三、观后语一、前言在Android 9(API level 28)及以上版本,支持放大镜功能,这个功能可以提高文本插入、选择的用户体验,可供用户看清细小的文字,例如:地图上的地名。放大镜功能在系统控件,例如:TextView、EditText、WebView中已经集成。效果如下图:不过可惜的是,放大镜功能只能...原创 2020-03-16 15:17:22 · 4280 阅读 · 0 评论 -
XML字体配置
文章目录一、前言二、XML字体配置2.1 创建字体系列(font family)2.2 在XML中使用字体资源2.3 在编码中使用字体资源2.4 使用支持库实现一、前言在以往的开发中,开发者都是将字体文件放在assets目录下,在程序运行时加载并设置到TextView中,自从Android 8.0(API level 26)开始,支持将字体文件放在res资源中,添加XML字体配置,可以在lay...原创 2020-03-09 19:59:28 · 4094 阅读 · 0 评论 -
Android自动调整字体大小的TextView
文章目录一、前言二、设置`TextView`文本自动调整大小2.1 默认缩放2.2 按粒度缩放2.3 按预设定值缩放三、使用支持库实现文本自动缩放一、前言 在应用开发过程中,可能需要这样的场景:一个现实区域有限的TextView,但是需要显示不定长度的内容,在不调整控件的尺寸的情况下,需要将内容尽可能全部显示,只能通过调整字体的大小,但是如何调整却...原创 2020-03-06 18:00:58 · 5408 阅读 · 1 评论 -
Android中使用可下载字体
可下载字体简介在Android 8.0(API level 26)和Android Support库26开始提供了从字体提供商下载字体的API接口,用以替代将字体绑定打包到APK文件中,或者让APK下载字体文件。这个功能在Android 8.0(API level 26)及以上版本系统可用,或者在API level 14及以上的系统,通过26及以上版本的Support库实现。可下载字体功能有一...原创 2020-03-03 17:30:50 · 2769 阅读 · 0 评论 -
为AppWidget添加配置Activity
文章目录前言前言 在构建自己的窗口小部件的时候,为了更加定制化,会根据用户的喜好,让用户选择小部件的样式等,这种情况下,就需要为窗口小部件添加一个配置页面了。在用户添加窗口小部件的时候,会弹出配置页面关于构建AppWidget相关内容参考:为你的Android应用构建窗口小部件(App Widget)...原创 2019-12-18 17:59:32 · 680 阅读 · 0 评论 -
Android数字时钟神一般的实现——TextClock
文章目录前言1. 使用方法2 优缺点前言 在Android上实现数字时钟,还在自己使用TextView实现?在应用界面还容易,如果在AppWidget中,时间更新将会是头疼的问题,为了解决这些烦恼,Android官方提供了TextClock类,只需要将控件放在不居中,设置自己需要时间格式即可。更多详情请参考Google官方文档:TextClock...原创 2019-12-17 10:32:11 · 11476 阅读 · 0 评论 -
为你的Android应用构建窗口小部件(App Widget)
文章目录1. 基础2. 实现窗口小部件(App Widget)第一步:创建窗口小部件布局文件第二步:添加`AppWidgetProviderInfo`元数据配置 App Widget是微型应用程序视图,可以嵌入其他应用程序(例如主屏幕)中并定期更新内容。这些视图在用户界面中称为“窗口小部件”,可以通过App窗口小部件提供程序发布窗口小部件。能够容纳其...原创 2019-12-09 15:13:01 · 2899 阅读 · 0 评论 -
Android10的那些事
文章目录1. 前言2. 隐私策略方面2.1 不可重置设备标识限制2.2 限制通过API启用/禁用WIFI2.3 访问WiFi配置受限1. 前言Android10已经发布,在这里将一些Android 10适配的一些注意事项。这里只说明部分变动,更多详情请前往Google官方介绍2. 隐私策略方面2.1 不可重置设备标识限制在Android 10,app拥有READ_PRIVILEGE...原创 2019-12-05 15:38:51 · 917 阅读 · 0 评论 -
Android Plugin DSL——DexOptions
在Android Gradle插件中,在android内可定义并配置dexOptions,DexOptions对象是用来配置dx选项的(生成dex文件的选项)。属性属性名说明additionalParameters生成dex文件的额外参数列表。javaMaxHeapSize生成dex是临时设定的-Xmx值,示例: “...原创 2019-10-25 16:22:58 · 1163 阅读 · 0 评论 -
Android原生方法和Web JS互相调用
准备工作新建一个Android项目准备一个html文件,为了简化,直接放到项目的assets目录下调用JS调用Android原生方法在Android项目中配置WebView,WebView的配置中必须启用JavaScript,添加JavaScript的入口接口,方法如下:webView.getSettings().setJavaScriptEnabled(true);原创 2018-01-26 16:18:05 · 8506 阅读 · 4 评论 -
AndroidStudio升级后编译项目出现Aapt2Exception异常的问题解决方案
问题描述AndroidStudio升级后,打开旧项目没问题,但是新建项目编译会报错:Errorcom.android.tools.aapt2.Aapt2Exception AAPT2 error check logs for details,查看gradle log,报错信息如下图(其实那些资源文件都是可以找到的)问题定位根据网上查找的资料,在Google gradle插件升级到3.0之后(Goo...原创 2018-03-17 21:11:32 · 25751 阅读 · 4 评论 -
Android创建桌面快捷方式
背景 在Android设备上,为某个应用创建一个特定的快捷方式,可以快速进入应用的某个操作,比如浏览器将某个页面收藏到桌面,点击桌面的快捷方式直接打开页面。代码实现 添加桌面图标快捷方式代码非常简单,在API 26(Android O)以下的版本,并没有提供API进行创建桌面快捷方式,但是用户可以通过广播的方式创建桌面快捷方式。在API 26(Android O...原创 2018-03-26 16:36:01 · 10769 阅读 · 1 评论 -
在AndroidStudio中使用单元测试
1. 前言 在Android开发中,如果对一个简单的功能,每次修改代码都重新运行到设备中进行测试,会浪费大量时间,降低开发工作效率。如果使用单元测试,编写单元测试类,执行测试单元测试类就可以对某些功能进行测试,大大提升了开发工作效率。2. 添加单元测试支持 在AndroidStudio项目中,如果是新版本的AndroidStudio中新建的,会自动添加了单元测试的支持,如果旧项目,没有...原创 2018-05-14 22:22:12 · 29580 阅读 · 6 评论 -
Android Deeplink配置
Deeplink启动应用配置注意事项1. Deeplink格式说明 Deeplink是目前使用广告跟踪非常热门的一种方式,Deeplink的链接类型一般是schema://host/path?params样式。2. 为接收Deeplink配置intent-filter 在Android设备中,点击Deeplink后可以打开指定应用,为了能够正确定位到需要打开的应用,并正...原创 2018-06-20 17:06:22 · 22000 阅读 · 3 评论 -
Nexus私服添加用户名密码凭据访问的配置方法
前言默认情况下,Nexus私服的仓库是允许匿名(anonymous)访问的,也就是任何开发者只要知道你的仓库地址,都可以远程依赖你发布到仓库的库。既然是私服,可能有些库不想要给其他人访问,可以通过设置凭据访问来限制用户访问远程依赖库,最简单的一种就是用户名密码凭据访问。配置方法Nexus 服务端配置第一步:打开远程仓库,使用有配置管理的账户登录,打开设置页面;第二步:定位到“Se...原创 2018-10-11 10:06:16 · 21465 阅读 · 3 评论 -
AndroidStudio自定义dex最大方法数
方法数超过64K的处理随着软件不断增大,原来dex最大方法数65535的限制导致,为了解决这个问题,Google官方提供了多dex的方案,Google官方说明:为方法数超过 64K 的应用启用多 dex 文件默认情况下,Android Gradle插件会自动统计方法数,并自动决定将哪些类放入到maindex中,这样一来,maindex往往是比较庞大,接近64k的限制,如果需要对apk进行特定的...原创 2019-10-10 18:37:01 · 2068 阅读 · 0 评论 -
使用Chrome远程调试Android移动端WebView中的JS
1. 前言移动端网页开发,最头疼的就是调试了,谷歌Chrome支持远程连接Android设备,调试WebView中打开的页面。2. 准备工作Android开发环境(adb工具)一个Android设备,在PC安装好驱动(如果需要),开启调试模式,开启调试模式的方法这里就不累赘了,使用USB链接到电脑PC端安装Chrome浏览器PC端有可以正常使用的VPN(据你的网络环境而定是否需要,这个大家都懂的)...原创 2018-02-09 17:54:52 · 9505 阅读 · 0 评论