Android学习
文章平均质量分 74
静水红阳
好记性不如烂笔头,做做笔记共同学习!
展开
-
Android apk文件打包自定义命名
在Android Studio中打包生成的APK和aar文件基本上都是module名称+构建类型,常见的都是和这种样式的。显然没有版本号等序号标识的话,管理起来会比较混乱,基于此种情况,我们可以通过修改文件中的配置来修改生成包的文件名以做区分。原创 2023-05-15 20:46:56 · 3152 阅读 · 1 评论 -
Android独立Module运行
Android组件化中我们经常会将逻辑组件到各个Module中,为了进一步提高开发效率,避免不必要的编译时间浪费,我们可以通过对Module中build配置进行进行设置,以使各个业务单元模块Module可以独立运行。通过修改gradle配置可以调整我们要运行的Module,这对于我们的组件化开发和调试有着极大的便利。原创 2022-10-03 15:35:17 · 1565 阅读 · 0 评论 -
Android中依赖版本统一管理
使用config.build文件实现Android中依赖的统一管理原创 2022-09-22 11:32:49 · 994 阅读 · 0 评论 -
Protobuf在Android中的基本使用
前言Protobuf,类似于json和xml,是一种序列化结构数据机制,可以用于数据通讯等场景,相对于xml而言更小,相对于json而言解析更快,支持多语言。一、Proto文件示例Protobuf使用.proto文件来定义数据格式,所以我们首先新建立一个person.proto文件,并在文件中填下如下内容://指定proto的版本为proto3,不写的话默认为proto2.syntax = "proto3";//包名package proto;//引入包//import "";//指定生原创 2022-01-28 11:57:34 · 4586 阅读 · 0 评论 -
Android APT技术学习
Android APT技术简单说明,仿照Butterknife实现了View的自动绑定demo原创 2021-12-27 00:23:25 · 2166 阅读 · 0 评论 -
Android Jetpack组件学习(一):LifeCycle
前言Lifecycle是Google推出的用于处理Activity和Fragment的生命周期相关问题的组件,是一种观察者模式的结构。使用lifeCycle能够在生命周期的拥有者和观察者之间建立一种监听关系,当拥有者的生命周期发生变化时观察者能够及时监听到并作出对应的处理,同时观察者能够非常方便的判断当前拥有者的生命周期是什么。从上面的描述上看,显然LifeCycle的使用场景是和Activity和Fragment的生命周期相关的业务逻辑。举例来说,在MVP结构中,Presenter需要感知到Act原创 2021-11-09 15:58:54 · 2049 阅读 · 0 评论 -
Android View Binding概述及基本使用
前言使用kotlin语言进行Android开发的朋友们肯定对Kotlin-android-extensions插件不陌生,这个插件可以帮助我们节省findviewbyid()的书写。在不需要添加其他的代码的情况下,我们就可以直接在kotlin代码中直接使用xml定义的控件id来直接调用控件,其余的工作都由插件自动完成。这个插件在Android开发中可以说是非常方便了,尤其是复杂的页面中包含大量的View的情况下,可以为我们省略的大量的琐碎代码的书写。但是自Android Studio4.1之后,每当我们原创 2021-11-08 01:43:08 · 3577 阅读 · 0 评论 -
Android二维码的基础使用(三):二维码扫描Demo实现
前言在前两篇文章中,我们讲述了二维码的生成、保存和分享的内容,本次我们对于二维码的扫描的内容进行说明,实现一个简易的Android扫一扫功能。系列文章:Android二维码的基础使用(一):利用Zxing生成自定义二维码Android二维码的基础使用(二):保存和分享Android二维码的基础使用(三):二维码扫描Demo实现一、lib库说明扫描二维码同样需要引入zxing库,但是由于原生的zxing库使用在自定义特性上支持一般,于是在此我选择引入了辅助库:implementation 'c原创 2021-11-02 18:25:12 · 1121 阅读 · 0 评论 -
Android二维码的基础使用(二):保存和分享
概述在上期文章中,我们提到了Android二维码的自定义生成,本期主要包含的内容如下:将二维码以图片的形式保存到指定的目录。如何调起系统分享实现二维码分享到其他应用。系列文章:Android二维码的基础使用(一):利用Zxing生成自定义二维码Android二维码的基础使用(二):保存和分享Android二维码的基础使用(三):二维码扫描Demo实现一、保存至本地要将二维码保存到本地到指定目录,必然涉及到文件操作,可以通过文件IO流保存的方式将二维码进行保存,同时发送广播更新图库,主要原创 2021-11-02 18:24:06 · 838 阅读 · 0 评论 -
Android二维码的基础使用(一):利用Zxing生成自定义二维码
概述二维码的应用已经可以说是非常广泛了,那么如何在当前的app项目中生成自定义二维码,本文对采用Google开源库Zxing去生成二维码的流程进行简单说明。系列文章:Android二维码的基础使用(一):利用Zxing生成自定义二维码Android二维码的基础使用(二):保存和分享Android二维码的基础使用(三):二维码扫描Demo实现使用1. 引入jar包build.gradle文件中引入jar包。implementation 'com.google.zxing:core:3.3.0原创 2021-11-02 18:22:04 · 3485 阅读 · 0 评论 -
Android网络状态获取及NetworkCallback简述
前言在APP的开发中,获取到网络的链接状态是一个经常使用到的方法。除了可以使用ping指令来判断当前的网络状况之外,还可以直接通过ConnectivityManager来对网络状态进行判断。一、网络判断旧方法(deprecated)权限申请如果要获取网络信息,首先是需要申请网络权限:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />判断网络使用ConnectivityManager可原创 2021-03-30 14:27:37 · 4156 阅读 · 0 评论 -
Android中调用Ping操作及结果分析
实现方法android中调用ping命令需要使用Linux底层的命令:ping -c 1 -w 10 ip其中参数-c 1指的是ping的次数为1,参数-w 10指的是超时时间,单位为秒,超过10s则本次ping失败。参数ip指的是ip地址。Android中调用ping的方法如下:Process process = Runtime.getRuntime().exec("ping -c 1 -w 10 " + ip); //执行ping指令结果解析调用ping之后的结果(以百原创 2021-02-19 11:22:16 · 2899 阅读 · 2 评论 -
RecyclerView的使用(一):基本使用
前言对于从事Android开发的朋友们来说,RecyclerView大家肯定都不陌生,这是一个和listView有些相似的列表结构控件,可以实现一些基本的列表的显示及事件内容。本期对于RecyclerView的一些基本使用做些简单的说明,如果您已经对Recyclerview的使用非常熟悉,可以选择跳过此篇文章。基本使用RecyclerView的使用步骤比较简单,主要包含如下几步;包引入,引入对应的RecyclerView包设置布局文件,主要包括引入的布局文件将RecyclerView作为一个控件原创 2021-02-18 18:51:46 · 373 阅读 · 1 评论 -
RecyclerView的使用(二):添加头部和尾部
前言Recyclerview作为Android的常用控件之一,相信大家对它应该是十分熟悉了,不熟悉的朋友可以参考我之前发的文章 RecyclerView的基本使用,其中包括有单item及多Item的基本使用。但是我们发现Recyclerview中没有提供方法直接添加headerView和footView。对于我们自己去使用来说还需要从getItemViewType方法中进行重写,根据不同的类型添加不同的item布局,具体实现可以参考 RecyclerView的基本使用 中多item的使用。下面讨论下如何原创 2021-02-18 18:48:42 · 2092 阅读 · 1 评论 -
CWAC-SafeRoom数据库加密
概述对于Room数据库,SQLCipher加密并不能够直接支持,因此CWAC-SafeRoom便应运而生。CWAC-SafeRoom是一个用来方便Room数据库加密的框架,该项目底层同样是采用SQLCipher原理实现,只是更加适用于Room数据库框架。使用1. 包引入使用此框架,首先需要引入对应的lib包。由于androidx的变动,该内容有着两个版本的包引入,分别适用于androidx版本和旧版的Android support包版本,示例如下:Androidx版本repositories原创 2021-02-01 20:53:34 · 913 阅读 · 0 评论 -
Android中 Sqlite数据库使用
概述Sqlite数据库是Android系统内常用的数据存储的方式之一,还有其他几种存储方式:文件存储,SP存储等。SQLite是一个进程内的轻量级嵌入式数据库,它的数据库就是一个文件,实现了自给自足、无服务器、零配置的、事务性的SQL数据库引擎。它是一个零配置的数据库,这就体现出来SQLite与其他数据库的最大的区别:SQLite不需要在系统中配置,直接可以使用。且SQLite不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite可直接访问其存储文件。Sqlite具有如下特点:存储原创 2021-01-25 16:00:41 · 310 阅读 · 1 评论 -
SharedPreferences和MMKV使用
概述本文主要简述SharedPreferences存储的使用及优劣势,以及MMKV内容。一、SharedPreferencesSharedPreferences(以下使用SP简称)是在Android中的一种轻量级的存储方式,支持开发者将基本类型数据以键值对的形式进行存储。SP具有在应用内数据可以共享,使用简单方便的优点。SP会将数据以文件的形式进行存储,具体路径:/data/data//shared_prefs/下面对于SP的使用进行简单说明。使用使用SP首先需要需要获取SP对象,可以通原创 2021-01-22 17:18:14 · 595 阅读 · 0 评论 -
LitePal基本使用概述
前言LitePal是一款开源的Android数据库框架,它采用了对象映射关系(ORM)的模式,并将我们平时开发最常用的一些数据库功能进行了封装,减小了代码量。官方Git地址使用使用LitePal主要包括如下几步:引入jar包并申请对应权限初始化数据库,创建实体类绑定实体类到数据库中,生成数据表进行数据库增删改查等基本操作litePal数据库的创建包括两种基本方式:通过xml定义数据库名称及版本,定义实体类的绑定通过代码动态控制数据库名称及版本下面分别对上面两种方式进行说明。原创 2020-12-25 14:43:43 · 719 阅读 · 0 评论 -
dataBinding数据绑定使用总结
概述DataBinding是一个Android数据绑定库,使用此库可以使用声明性格式在xml中将布局的界面绑定到应用的数据源中,是MVVM框架的核心思想及工具。一、基本使用使用dataBinding主要包括如下几步:build配置layout布局改进新建对应的viewModel属性绑定1. build配置使用databinding首先需要打开databinding可用开关,即在build.gradle下添加如下代码:android { dataBinding {原创 2020-12-20 22:29:48 · 527 阅读 · 0 评论 -
Android代码混淆配置:ProGuard
前言对于一个应用release包来说,存在混淆效果是十分正常的。添加混淆不仅能够使用无意义的命名去重新命名类、方法及变量,使得应用代码被混淆难以反编译及进行逆向工程,同时在一定程度上还能够减小包的大小。在Android里面,由于我们常用的IDE:Android Studio集成了ProGuard,因此我们最常用,最简单的混淆是ProGuard混淆。ProGuard混淆主要包括有四个功能:压缩(Shrink):用于检测和删除没有使用的类、字段、方法和属性。优化(Optimize):对于字节码进行优化原创 2020-12-18 13:24:01 · 677 阅读 · 0 评论 -
DeepLink使用总结
Deeplink定义deeplink是用于设置一个web链接,将链接嵌入到web页面中,当用户点击外部链接时由浏览器对链接进行解析并打开自己的项目APP,并跳转到APP内特定界面。Deeplink设置配置文件配置配置AndroidManifest.xml文件,在Activity中设置,并填充必要的属性,示例代码如下: <activity android:name=".DeepLinkActivity" androi原创 2020-12-13 22:28:31 · 2387 阅读 · 0 评论