![](https://img-blog.csdnimg.cn/2020081315500629.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android知识点
文章平均质量分 94
收集小知识点,积少成多,知识就是力量。
初学者-Study
愿你余生所学,皆是兴趣使然,而非生活所迫。
展开
-
Android 项目Gradle文件讲解(Groovy和Kotlin)
在Android应用开发中,Gradle是很重要的,它关系到你的项目能否正常编译运行,构建APK等等,而随着编辑器的更新,Gradle也发生了一些变化。通过项目编译成apk文件,我们可以修改apk的文件名称,如下所示:Groovy// 自定义打包${variant// 自定义打包 android . applicationVariants . all {Kotlin// 自定义打包${// 自定义打包 android . applicationVariants . all {原创 2024-05-28 19:30:00 · 2316 阅读 · 5 评论 -
Android 项目编译 Gradle 配置说明
Android 的Gradle版本更新换代还是很快的,更新换代除了功能上变得强大之外,还会出现很多意料之外的Bug,而很多开发者会被折磨的死去活来,下面我们来看有哪些编译配置。原创 2023-04-21 21:15:00 · 3356 阅读 · 2 评论 -
Android MVI框架搭建与使用
有一段时间没有去写过框架了,最近新的框架MVI,其实出来有一段时间了,只不过大部分项目还没有切换过去,对于公司的老项目来说,之前的MVC、MVP也能用,没有替换的必要,而对于新建的项目来说还是可以替换成功MVVM、MVI等框架的。原创 2023-02-10 22:15:00 · 3590 阅读 · 1 评论 -
Android WIFI使用简述
随着Android版本的更新,目前最新的版本是Android 13,并且已经有部分国产手机更新了此版本,对于Android开发者来说,变化其实不那么大,而对于本文章来说就有一些变化。 在Android 12版本中,增加了对于蓝牙操作的动态权限,而在Android 13中,增加了对于WIFI操作的动态权限,日常工作生活中,我们用到WIFI功能是很多的,例如手机、电脑、电视等设备。而使用WIFI是一回事,WIFI开发又是另一回事,和蓝牙是一个道理,它们之间也有很多相似的地方。 首先创建项目,这里我使用的原创 2023-02-06 22:15:00 · 5002 阅读 · 8 评论 -
Android Studio Electric Eel | 2022.1.1 版本
各位读者,新年快乐,现在是2023年了,新的一年,我们的开发也会焕然一新,Android开发的工具Android Studio,也能更新到了,短期内我将使用此版本学习和开发。原创 2023-01-29 22:00:00 · 10748 阅读 · 18 评论 -
Android 编译C++
在开发过程中,有一些底层库,算法、加解密之类的功能,不是用Java写的,而是C或者C++,而我们需要在Android工程中调用C/C++的函数达到理想的要求,那么这个时候你就需要知道怎么使用它们。原创 2022-11-18 21:30:00 · 5552 阅读 · 8 评论 -
Android 组件化(二)注解与注解处理器、组件通讯
在上一篇文章中,我们完成了组件的创建、gradle统一管理、组件模式管理和切换,那么这一篇文章,我们需要做的就是组件之间的通讯了。原创 2022-11-15 23:45:00 · 2207 阅读 · 4 评论 -
Android 组件化(一)项目模式管理、模式切换
在进行安装开发的时候我们经常会对项目进行不同业务逻辑处理分包,例如专门处理网络、数据库、业务逻辑代码的,如果我们不分包则所有东西写在一起,势必在开发过程中会浪费很多时间在寻找文件上,而分包的思想源于模块化,例如一些utils类,专门放到一个包下面,这样在使用的时候就能很快找到。节省开发时间,降低后期维护成本,那么组件化是什么? 在上面我们提到模块化,可以根据不同的功能进行进一步的封装,放到一个新建的模块下面,例如登录注册模块,个人中心模块之类的,但是模块化时就会涉及到一个分体,不同模块之间存在业务逻辑原创 2022-11-14 23:45:00 · 2431 阅读 · 0 评论 -
Android 注解与注解处理器简述
在Android开发中,注解是非常多的,如果不去了解,你可能感受不到注解的存在,一些框架用到的注解是很多的,例如Butterknife、Retrofit、Dagger2、Hilt、ViewBinding、DataBinding等等,下面简单的来了解一下注解。原创 2022-10-22 21:15:00 · 3688 阅读 · 2 评论 -
Android Socket通讯 之 心跳消息
不知道大家国庆节过的咋样,有没有学习呢?我是闲着没事就写点东西,本文篇幅较短,只是实现了心跳消息的处理,下面进入正文。原创 2022-10-05 16:24:32 · 3892 阅读 · 0 评论 -
Android RecyclerView使用简述
RecyclerView是Android中非常受欢迎的控件,RecyclerView是官方在Android5.0之后新添加的控件,推出用来替代传统的ListView和GridView列表控件,所以如果你还在使用ListView的话可以替换为RecyclerView了。文章的功能可以先运行看看效果,扫码下载APK 对于RecyclerView的使用根据实际项目进行说明,一些功能可能是你现在正在做的,对你有帮助也说不定。 创建一个名为RecyclerViewDemo的Android项目。注意Andro原创 2022-09-27 23:00:00 · 23931 阅读 · 12 评论 -
Android Socket通讯 之 表情列表优化、业务逻辑优化
本文将对Socket通讯进行进一步的优化,并增加新的功能,具体改变了那些,一起来看。效果如下图所示: 本文的优化,从逻辑、UI和功能三个方向上进行,之前的代码实际上是有一些逻辑问题。 之前在使用的过程中,每一次发送一条消息就会新建一个线程,这无疑是不可取的,而现在我们通过一个线程池来管理,对多个线程进行统一地管理,避免资源竞争中出现的问题,对线程进行复用,线程在执行完任务后不会立刻销毁,而会等待另外的任务,这样就不会频繁地创建、销毁线程和调用GC。 那么问题又来了,既然线程池有这么多的好处,为什么原创 2022-08-30 22:30:00 · 2519 阅读 · 0 评论 -
Android Socket通讯 分离服务端和客户端、发送表情消息
在之前写的Socket通讯中,完成了基本的客户端和服务端的通讯,功能比较简单,本文将对功能进行一次升级。完成后效果图如下: 功能升级分为两个环节,页面优化,消息类型增加。首先来说就是页面的优化,之前全部写在一个页面里面,虽然可行,但是会显得很臃肿,不利于解读和维护。 页面优化内容还是比较多的,首先要做的就是分离页面。在com.llw.socket包下新建一个ui包。这个包下新建一个BaseActivity,代码如下:这里是作为一个基类,后续我们写关于Activity的都放在这个下面。在com.ll原创 2022-08-24 23:00:00 · 2788 阅读 · 1 评论 -
Android Socket通讯
Socket通讯在很多地方都会用到,Android上同样不例外,Socket不是一种协议,而是一个编程调用接口(API),属于传输层,通过Socket,我们才能在Andorid平台上通过 TCP/IP协议进行开发。先看看效果图:先说明一下流程:① 准备两台Android手机(真机)。② 连接同一个WIFI网络 。③ 服务端开启服务。④ 客户端连接服务。⑤ 服务端与客户端进行消息发送接收。那么根据这个流程我们开始写代码。创建一个名为SocketDemo的项目,使用Kotlin。因为涉及到网络通讯原创 2022-08-08 21:00:00 · 11825 阅读 · 5 评论 -
Android Notification使用
在应用的开发中,我们必然会接触到应用通知这个知识,而在通知是随着Android版本进行不断变化,为了能在高版本和低版本中使用,就需要开发者去做适配,也属于查漏补缺。了解之前,先看一个效果图吧。 通知的使用的内容还是比较多的,此篇文章将会尽可能详细的介绍Notification的内容。下面就开始我们的适配之旅吧。新建一个名为NotificationStudy的项目,如下图所示: 点击Finish完成项目创建,然后在app的build.gradle中的android{}闭包中开启viewBinding原创 2022-07-10 20:00:00 · 5796 阅读 · 21 评论 -
Android Git之旅
作为一个程序员,你保存代码的方式是什么?更新代码的方式是什么?你还在用拷贝的方式保存代码吗?U盘?移动硬盘?还是网盘? 以上的一些方式你可能在刚开始学习或工作的时候会用到,但不是长久之计,因此你需要学会使用git。git的用法虽然不难,但是精通不易,如果不是经常使用,容易看了就忘记,特别是一些指令的使用,这里做一个记录,从头开始了解git。 点击Git进入官网。 官网会根据你的电脑系统为你推荐最新的Git版本,这里你会看到2.37.0,Windows安装版本,点击Download for Wind原创 2022-07-06 23:45:00 · 2354 阅读 · 2 评论 -
Android 允许其他应用启动您的Activity
看标题你可能不知道是什么意思,我说一个场景你大概就明白了,比如在微信中收到了好友发过来的一个名为xxx.apk的文件,这是一个应用apk,而微信中收到后就是,xxx.apk.1。你点击这个文件接受之后,微信是无法直接打开,这个时候会有一个其他应用打开的按钮,你点击这个按钮会出现一个弹窗,里面会列举出能够打开apk文件的应用。 其实不光是微信,很多的社交软件都有这个其他应用打开的功能,例如QQ、钉钉,介绍的很详细了。那么如果要让自己的应用出现在这个弹窗列表里,该怎么做呢? 实际上这并不是一个新的知识点原创 2022-06-12 13:21:42 · 3022 阅读 · 6 评论 -
Android Jetpack组件 Compose 使用介绍
Android Jetpack组件 Compose 使用前言正文一、创建Compose项目前言 一直以来,在Android 中构建UI页面是一个很耗时的操作,我们需要图形界面和xml去创建布局,通过预览达到我们想要的效果,而Jetpack推出的新组件Compose就解决了这个痛点,下面让我们来了解它,使用它。正文 Jetpack Compose是一个用于构建原生Android UI的现代工具包。Jetpack Compose 通过更少的代码、强大的工具和直观的 Kotlin API 简化并加速了原创 2022-03-27 13:08:22 · 5850 阅读 · 6 评论 -
Android Jetpack组件 DataStore的使用和简单封装
这里写目录标题前言正文一、添加依赖前言 也许你是第一次听说这个DataStore,也许你有所耳闻,但从未使用过,不过都没有关系,随着这篇文章去熟悉DataStore。正文 DataStore是Jetpack中的一个组件,用于做数据持久化,DataStore以异步、一致的事务方式存储数据,克服了SharedPreferences的一些缺点,DataStore基于Kotlin协程和Flow实现,就是用来取代SharedPreferences的。我们废话不多说,开始吧。按照惯例,我们新建一个项目去做演原创 2022-03-18 20:42:26 · 2482 阅读 · 16 评论 -
Android 启动优化说明、黑白屏处理
这里写自定义目录标题前言正文一、启动优化前言 在上一篇文章中完成了记事本功能的增强。正文 在Android App使用过程中,对于应用的优化是一个加分项,举个例子,打开你的App需要2秒,人家0.5秒,这就是很大的用户体验上的优化。当然了目前我没见过有启动的这么快的App,因为什么呢?因为App在启动的时候做的事情太多了,这是对于那些商业的App来说,自己的App可以这么高,提升使用,首先我们来想一下启动优化。一、启动优化 这个启动优化最开始并不是用在App上的,是在网页上的,在零几年的时原创 2022-03-10 21:00:00 · 4320 阅读 · 4 评论 -
Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
大黄蜂版本使用介绍 在近期我对AS进行了一次更新,更新到目前最新的版本:Bumblebee | 2021.1.1 Patch 2,AS的下载地址是:谷歌中国,这个版本更新于2022年2月。如果你之前安装过老的版本,没有关系,覆盖安装就好,一些之前的配置都会在新版本中同步的,下面我们启动AS。这是启动页面,大黄蜂版本,我之前使用的是AS 4.2.1。现在更新到最新版,让我们来看看有哪些变化。创建一个项目测试一下看看:创建项目还是没有什么变化,让我们看看项目结构有什么变化。每次AS更新,随之改变的原创 2022-03-02 10:11:17 · 14634 阅读 · 14 评论 -
Android 折叠式布局
折叠式布局效果图如下从头开始 先建立一个名为 Folding 项目,然后在创建一个Activity, OneActivity这个Activity带有自身的XML布局文件,** 标题栏折叠**首先打开activity_one.xml文件 将里面的总布局改为CoordinatorLayout里面以此嵌套AppBarLayout 、Toolbar。如下图所示嵌套好之后设置一些简单的样...原创 2019-08-31 11:42:04 · 7359 阅读 · 4 评论 -
RadioGroup+ViewPager +Fragment 制作APP主界面底部导航和左右滑动
实现效果图如下:PS:下面那个红色的我也不知道是怎么回事,看到上面的两层水印了,它们的存在证明了我的穷。在日常开发中我们常常会用到类似微信或者QQ的底部导航。实现这样的效果有多种,今天就为大家介绍一种实现简单,可控性好的底部导航的实现方法。1.创建布局首先创建一个项目 ,然后再MainActivity的布局文件中放两个控件 ViewPager和RadioGroup。代码如下<?...原创 2019-09-09 17:18:39 · 1161 阅读 · 5 评论 -
Android 移动应用性能优化 之 友盟
移动应用性能优化 之友盟前言正文前言 距离我的GoodWeather开发已经过去一年多的时间了,这个App我是完全开源,并且把开发的步骤都公布了出来,在开发过程中我遇到过很多问题,刚好借着这个机会来说一下。正文 GoodWeather App是一个天气的App,可以实时定位你当前的所在位置,查询到当地的天气,并且提供地图定位模式和语音输入快速查询的方式,项目的源码地址如下:GoodWeather...原创 2021-10-24 08:00:00 · 10428 阅读 · 1 评论 -
Android 通知监听服务、NotificationListenerService使用方式(详细步骤+源码)
NotificationListenerService使用前言正文一、配置项目前言 NotificationListenerService 通知监听服务,就是监听手机上的广播通知,这个在纯App开发中用的比较少,但是在智能穿戴领域用的很多,比如我有一个智能手表,然后有一个配套的App应用,有时候在上班路上,手机放在口袋里,要接受到手机上的通知消息,例如QQ、微信、来电、短信等。智能手表上显示有新消息,如果手表上有屏幕的话,还能显示消息的内容。这就很Nice了不是吗?正文 下面进入正式的使用,我先原创 2021-08-14 08:57:35 · 9869 阅读 · 13 评论 -
Android Room数据库使用
Room数据库使用前言正文一、添加依赖二、注解使用三、表操作1. 修改布局2. 列表适配器3. 页面初始化4. 增删改查四、源码前言 Room数据库是Google的JitPack组件中的一个,推出已经有一段时间了,现在的使用者也越来越多,Room是一个轻量级的ORM(Object Relational Mapping:对象关系映射)数据库。本质上就是对Android原生的SQLite的封装,只不过使用起来比原生简单,就好像一些开源库GreenDao、LitePal、OrmLite等,都是对Androi原创 2021-08-03 19:47:34 · 5161 阅读 · 26 评论 -
Android BottomSheetDialog设置背景透明无效?(解决)
BottomSheetDialog修改背景圆角解决方法这里记录一个实际开发过程中遇到的问题,在日常开发中遇到底部弹窗的时候我会第一时间用到BottomSheetDialog,常规的使用就是有一个默认从底部出现的弹窗,但是为了美观,通常会使用圆角,来设置,比如这样。很简单的布局然后代码中设置一下。 BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this); View dialogView = getLayoutInf原创 2021-07-19 19:39:27 · 2897 阅读 · 17 评论 -
Android App上架应用市场所需资料说明
App上架应用市场所需资料说明前言正文一、确认上架平台二、企业开发者账号三、应用上架资料四、等待平台审核前言 作为Android开发工程师,如果你的人生中没有自己上架过应用,那是很幸运的,因为那样你就不用去准备一堆材料了,不说废话了,进入主题。正文 App上架应用市场,就标志者你的App要直面全国用户了,海外你只要搞定了Google应用市场,其实就没啥了,主要还是国内。一、确认上架平台上架首先你需要明确上架的平台有哪些。这里说一些常见的平台,首先是各大手机厂商的平台:华为开放平台小米开放原创 2021-07-17 16:32:10 · 4318 阅读 · 6 评论 -
Android 小米推送服务集成
小米推送服务集成前言正文一、创建平台应用二、下载SDK三、项目配置四、注册推送五、创建推送消息前言 丰富厂商渠道推送,下图为小米手机,应用销毁进程之后收到推送消息,点击消息打开引用的Gif图。如果这是你想要的,那么就可以往后面看了。我的小米手机型号是MI 8 ,MIUI版本 12.0.4,Android版本 10.0。正文 有时间的时候我习惯写一下文章放松自己,下面进入主题,首先进入小米开放平台。注册小米的开发者账号,然后登陆账号,完成个人开发者认证或企业开发者认证之后。开始今天的小米原创 2021-07-15 20:19:11 · 2236 阅读 · 27 评论 -
Android 正则表达式
正则表达式介绍使用介绍 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。使用 正则表达式的可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。...原创 2021-07-11 13:48:15 · 5944 阅读 · 7 评论 -
Android 发布开源库到 JitPack (详细步骤)
发布开源库到 JitPack前言正文一、创建项目二、模块创建与依赖三、测试依赖库四、项目配置五、提交代码六、创建Release&Tag版本七、提交到JitPack八、测试依赖库前言 最近这段时间,Google和jCenter的事情把开源库作者给搞懵了,jCenter还能使用一段时间,最近都是说迁移到mavenCentral上去,但是mavenCentral确实不太好迁移,所以退而求其次,选择JitPack。 Jitpack的简单之处就在于,你只要把项目的代码提交到Github上之后,在打一原创 2021-06-28 20:02:27 · 1860 阅读 · 22 评论 -
Android OPPO推送服务集成
OPPO推送服务集成前言正文一、创建AS应用二、创建OPPO平台应用前言 为了丰富应用推送的场景和国产大厂设备,在我有这个条件的情况下,相关机型的文章我都会写一遍,这一篇就写一下OPPO的推送服务集成,我本身是荣耀的手机,OPPO是借的朋友的旧手机来测试对接的,下面进入正文。正文 和之前的华为一样,你要使用OPPO的推送服务首先要成为OPPO开发者,打开OPPO 推送平台,这里的账号要为企业账号,个人开发者账号是不能进行应用创建的,同理不能对接推送服务,因此必须要是企业开发者账号才行。起码在原创 2021-06-09 16:54:41 · 2805 阅读 · 13 评论 -
Android 华为推送服务集成
华为推送服务集成前言正文一、创建平台应用二、创建AS项目三、配置Gradle四、生成并配置SHA256指纹五、开启应用推送服务六、配置签名七、HMS Toolkit工具配置八、推送消息结语前言 首先说明为什么要华为推送服务呢?这也是因为Android定制系统的问题,国内对安卓系统进行的定制的大厂有华为、小米、OPPO、VIVO、魅族等,小厂就更多了。大厂对Android系统进行了定制,形成特色的Android系统,而这些系统配置在国产的Android手机中,因为你需要根根据不同的厂商进行不同的适配,所原创 2021-05-12 15:49:30 · 5279 阅读 · 27 评论 -
Android TabLayout 使用进阶(含源码)
TabLayout 使用进阶前言正文一、控件基础使用① 设置标题② 设置图标③ 设置下划线二、分类页面 (TabLayout + ViewPager + Fragment)前言 对于Android开发来说,画页面算是必不可少的,因此你会接触很多不同的UI布局,你需要去绘制出来,在这过程中你已经接触过TabLayout。正文为了方便讲解,我依然是新建一个TabLayoutDemo项目来说明。一、控件基础使用首先在现在的版本中,TabLayout已经迁移到androidx下了。因此先在你的app原创 2021-05-06 09:41:20 · 4012 阅读 · 28 评论 -
Android 图片裁剪 (附源码)
Android 图片裁剪前言正文一、创建并配置项目二、权限申请三、获取图片Uri四、图片裁剪尾声运行效果图前言 图片裁剪是对图片进行区域选定,然后裁剪选定的区域,形成一个图片,然后再对这个图片进行压缩,最终返回结果图片。正文 从上面的描述来看貌似是挺简单的是吧,不过实际操作起来就没有那么简单了,下面先来看看简单的实现方式,就是Android自带的裁剪。一、创建并配置项目我们依然从创建项目开始讲起,这虽然有一些繁琐,但无疑可以让每一个Android开发者看懂。创建一个名为PictureCr原创 2021-03-28 13:50:03 · 8414 阅读 · 21 评论 -
Android 空包签名(详细版)
空包签名前言正文一、下载空包二、获取keystore三、空包签名总结前言 可能一看标题你不知道是什么意思,我这里解释一下什么是空包签名,为什么要空包签名。那是一个风和日丽的早晨,我愉快地敲着代码,于是项目总监告诉有一个老项目维护,给了我源代码,在我修复bug运行成功之后,说要上架到应用市场,我说要上那就上呗,简简单单。然后我发现事情并不是那么简单,平台上之前上架过此应用,那还是16、17年的事情,那时我还在学校呢。而且之前的平台开发者账号找不到了,也就是那之前平台上的应用是个孤儿。平台上有这个应用再原创 2021-03-23 10:26:03 · 2409 阅读 · 2 评论 -
Android MVP框架搭建与使用(含源码)
前言 其实之前我是写过相关的MVP文章的,只不过当时在是天气APP中,而这里是单独拉出来将,因此会有一些不同。正文先在Android Studio中创建一个名为MvpDemo的项目。创建好如下图所示一、创建mvp模块再创建一个依赖模块,File → New → New Module…选择Android LibraryNext,修改一下模块名字点击Finish,你的mvplibrary模块就创建完成了。下面在app模块中依赖mvplibrary模块。在AS的右上角工具栏中找原创 2021-01-15 11:31:04 · 5659 阅读 · 25 评论 -
Android OkHttp+Retrofit+RxJava搭建网络访问框架(含源码)
OkHttp+Retrofit+RxJava搭建网络访问框架前言正文总结前言 在实际开发APP中,网络访问是必不可少的,最开始访问网络是使用HttpURLConnection、而后面有了一些框架比如Volley、OkHttp、Retrofit等。那么你可能看到最多的是OkHttp,因为它很出名,Google也推荐你使用此框架进行网络访问。你可能会说Retrofit,Retrofit其实就是对OkHttp的二次封装。还有RxJava,这个又是用来干嘛的呢?为什么要将三者组合起来,组合有什么优势吗?带原创 2021-01-12 21:32:24 · 3765 阅读 · 16 评论 -
Android Studio 打包APK(详细版)
Android Studio 打包APK前言正文总结前言 做Android开发肯定对APK不陌生,你现在Android手机上所有的应用都是apk,只不过分为系统自带和第三方。正文 Android打包APK在开发中是必不可少的一个环节,相信你可能已经会了,或者在别的博客中看到过了,但是其实还有一些细节是你所不知道的。总结...原创 2021-01-07 15:22:01 · 140009 阅读 · 47 评论 -
Android 设备唯一标识(适配Android版本)
设备唯一标识前言正文1. 唯一标识的含义2. 新建项目3. 项目配置4. Android 5.05. Android 6.06. Android 8.07. Android 10.08. 解决方案总结前言 相信在看这篇文章之前你已经看过一些类似的文章了,那么你肯定知道自己想要的是什么。正文 首先要知道设备唯一标识的重要性,它可以做什么?① 大数据统计,比如采集这个APP的安装量,那么一个唯一标识就代表一个Android设备② 放置多设备重复登录,比如QQ、微信,你在A手机登录了,如果又原创 2020-12-12 10:26:01 · 5583 阅读 · 15 评论