自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Android网络篇(一)—— OkHttp的基本使用

因为这个系列是属于Android的基础系列,所以并不会涉及到很深的内容层次。作为网络这一个模块而言,我们经历了几个阶段。从最初的HttpClicent(已被废弃)到后面的HttpUrlConnection,当然在HttpUrlConnection的基础上出现了很多的网络框架,诸如:Volley,XUtils等等。但是随着OkHttp的推出,原来的这些网络框架都失去了色彩,OkHttp以其独特的魅力迅速获得了广大开发者的喜爱,今天我们就来看看关于OkHttp的那些事。OkHttp的基本特性(1)支持HTT

2021-07-18 10:05:19 474 1

原创 Android弹窗探究之PopupWindow的使用

相对于AlertDialog的使用,PopupWindow的使用也比较简单,这里主要介绍的是PopupWindow的基础使用包括在使用过程中的一些注意事项,做个笔记。效果展示:PopupWindow的基础方法创建popupWindow实例popupView = LayoutInflater.from(this).inflate(R.layout.popupwindow_view, null)popupWindow = PopupWindow()设置展示的视图// 设置PopupWindow

2021-07-09 16:28:45 385

原创 Android弹窗探究之AlertDialog(三)—— Dialog的基本封装

在对AlertDialog进行封装之前,我们有必要先了解一下AlertDialog的源码实现。一般情况下一行代码我们就可以创建一个弹框,如下所示:new AlertDialog.Builder(this).create().show();下面我们就一段段来分析,首先点击进去看下AlertDialogpublic class AlertDialog extends AppCompatDialog implements DialogInterface {...}public class AppC

2021-07-09 16:19:49 783

原创 Android弹窗探究之Dialog(二)—— BottomSheetDialog的基本使用

在上篇介绍完Dialog的基本使用之后,接下来我们就具化一下,看下最近比较流行的MD样式的底部弹出框BottomSheetDialog,先看下效果。BottomSheetBottomSheet的效果是指从屏幕底部向上滑的效果,是MaterialDesign风格的一种,使用起来也很简单。布局文件<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" andr

2021-07-05 11:03:08 1403

原创 Android弹窗探究之Dialog(一)—— Dialog的基本使用

在android里面,可视化视图除了最常见的Activity和Fragment外,还有一个就是今天我们要讲的主角Dialog了,虽然说Dialog的重要性和频率没有Activity那么高,但是在实际开发过程中Dialog依旧拥有着不可或缺的地位。Dialog中文可以翻译为对话,意味着它更多充当的是一种提醒的作用,比如用户点击退出APP谈一个框进行确认操作,比如首页弹出一个APP用户隐私等等,尽管Google官方推出了DialogFragment来代替Dialog,但是我们仍然有必要去学习一下Dialog。

2021-07-04 12:37:34 1306

原创 Android DialogFragment、BottomSheetDialogFragment的基本使用

在前面两篇我们介绍了Fragment的基本使用和Fragment配套ViewPager的使用,接下来我们就来看看除此之外其他的平时不常用但是我们很有必要掌握的其他的Fragment的基本使用。主要介绍的就是两种:DialogFragment和BottomSheetDialogFragment。(一)DialogFragmentDialogFragment看名字就知道是Dialog样式的Fragment,其推出的初衷就是为了解决传统Dialog无法与宿主的生命周期绑定导致需要后台时刻监听其动态变化,特别当

2021-07-01 12:12:09 1585

原创 Fragment与ViewPager的配合使用

在上一篇我们介绍了Fragment的基本使用,除了介绍的常规的静态加载和动态加载方式之外,其实Fragment更多的时候是与ViewPager配合使用,今天我们就来看看Fragment与ViewPager到底是怎么去使用的。FragmentPagerAdapter与FragmentStatePagerAdapter在使用ViewPager的时候,必不可少需要接触的就是PagerAdapter,而对于Fragment+ViewPager来说,系统提供了FragmentPagerAdapter和Fragme

2021-06-29 10:30:27 1074

原创 Android Fragment的基本使用

在我们平时的日常开发中,可视化界面除了Activity之外,用的最多的应该就是Fragment了,毫不夸张的说Fragment的重要性甚至比其他的三大组件的重要性都要高,而且Fragment在日常的开发过程中与Activity都是紧密配合的,所以说熟练掌握并运用好Fragment是一件很重要的事情,下面我们就一起来看看关于Fragment的那些事吧。Fragment的由来Fragment是在android 3.0中新增的,其中文可以理解为碎片,最初是为了满足平板的大屏而推出的。我们知道,平板由于屏幕比较

2021-06-26 16:03:31 678

原创 Android 屏幕适配

android 中的屏幕适配是一个老生常谈的问题,也是一个经久不衰的话题,同时随着android 生态的不断发展,适配方案也不断进行了调整,今天我们就来聊一聊android中的适配到底有哪些奥秘。为什么要进行屏幕适配Android系统经过十几年的发展,已然成为主流系统之一,同时作为开源系统,其允许各个手机厂商按照自己的喜好去定制系统,因此在此基础上出现了各个手机厂商的专属系统,比如:小米的MIUI系统,华为的EMUI系统,OPPO的ColorOS系统,VIVO的Funtouch OS系统,众多的系统加之

2021-06-25 11:25:35 546

原创 Android中常见的单位ppi,dp,dpi,sp,px

在android 开发过程中,我们使用的单位比较少,一般情况下在描述字体大小的时候我们通常用sp,而在设置间距的时候我们用dp,除此之外很少再用到其他单位,而且很多时候我们用着用着就习惯了,也不去探究为什么这么写,可不可以用其他单位,每个单位到底代表着什么意思,所以说,习惯真的很可怕呀。今天,我们就来一探究竟,看看这些单位背后的含义。PX(像素)像素即是屏幕上显示数据的最基本的点,在PS里面也是其最根本的单位,所有的图形都是在此基础上生成的,平时我们经常讲的手机屏幕分辨率就是以像素作为单位的,比如在an

2021-06-23 11:09:07 818

原创 Android 暗黑模式

自从2019年的Google大会之后,在Android Q(即API Level 29)的手机版本上系统就支持了暗黑模式。相信做过Android开发的人对这个并不陌生,这个其实就是大家普遍认知的日夜间模式的切换,只不过从系统的层面给予了支持,以前都是靠着硬编码来实现类似的效果。那么,Android 的暗黑模式和我们以前的日夜间切换模式有什么不同吗?如何来实现暗黑模式呢?带着这些问题,我们直接进入正题。1.什么是暗黑模式?为什么需要暗黑模式?暗黑模式其实就是我们经常讲到的夜间模式,与白天模式我们需要的屏幕

2021-06-22 12:11:57 2254

原创 Android之令人眼花缭乱的样式和主题探究

在android原生系统中,提供了大量的样式和主题背景,借助于系统的样式和主题背景,我们可以将应用设计的细节与界面的结构和行为分开,其作用类似于网页设计中的样式表。那么,今天我们就来看一看android 原生系统中的样式和主题背景。样式样式是一个属性集合,用于指定单个View的外观。样式可以指定字体样式、字号、背景颜色等属性,例如:(1)在values/styles.xml文件里面设置样式格式<!-- 设置底部的样式 --><style name="home_bottom_tab

2021-06-22 10:22:05 137

原创 Android ContentProvider之通讯录的简单实现

在上一篇我们了解了ContentProvider的基本使用后,这一篇我们就来小小的实验一下,通过ContentProvider来实现我们读取手机通讯录的简单功能。第一步:声明权限因为在Android 6.0之后,Android就对权限这一块做了修改,凡是涉及到危险的地方,都必须由用户手动赋予权限才能做相对应的操作,否则的话就会报错。申请权限并不复杂,首先在清单文件里面加入我们想要申请的权限。如下<uses-permission android:name="android.permission.R

2021-06-20 10:26:09 448

原创 Android ContentProvider内容提供者的详解

前面我们已经对四大组件的三个有了一定程度的了解,接下来我们来了解四大组件的最后一个——ContentProvider(内容提供者)。相比较前面的三个,内容提供者在日常的开发过程中用到的比较少,但是这并不意味着它不重要,所以接下来我们就来一起来揭开它神秘的面纱吧。我们知道在Android中,大部分的数据都是在应用内自己运作的,即应用的数据大部分都是私有的,那么,假设我需要将自己应用内的数据暴露给其他的APP或者说我需要获取系统上的其他应用的数据该怎么办呢?这个时候ContentProvider就派上用场了。

2021-06-19 15:51:25 422

原创 Android BroadcastReceiver之观察者模式

观察者设计模式是Java中23种设计模式之一,是属于行为性模式,其核心的定义本质是一对多的映射关系。即当一个对象状态改变时,依赖它的对象会收到通知并自动更新。首先来看一张图:这是使用StartUML画的一张关于观察者设计模式的结构图,下面我们来一一剖析:(1)Subject:抽象被观察者,里面包含了增加和删除观察者对象的方法,还有最后一个比较重要的方法是更新通知的方法。(2)ContractSubject:具体被观察者实现类,首先声明了一个集合用来添加和删除观察者,最后实现父类的所有抽象方法。(

2021-06-18 15:07:09 173

原创 Android BroadcastReceiver的基本使用

作为android 四大组件之一的广播接收器,在android实际的开发过程中应用频繁,无论是监听系统发出的广播,比如网络变化、电池变化等等还是监听应用内自己发出的广播都能很好达到效果。今天,我们就来看一看四大组件之一的广播接收器(BroadCastReceiver)。首先我们先来了解一些关于广播的基本信息。Android 广播的类型:1》 标准广播:是一种完全异步的广播,当广播发出后,所有的广播接收者几乎在同一时间接收到发出的广播,因此没有到达的先后顺序之说,也意味着广播无法被截断或者修改,这种广播的

2021-06-16 18:42:39 303 2

原创 Android中的保活机制

Android中的保活是一个永不过时的话题,因为每一个APP都希望能在后台不停的运行去搜集用户数据,在Android 系统处于较低版本的时候(目前最新版本为12,较低版本指的是8以下),很多APP借助于系统层面的漏洞研发出了各种保活的方法,但是随着Android 版本的不断更新,过往的保活方法渐渐失效,Android中的保活成为了一个越来越难办到的事情,但是我认为这是一个好事,如非这样你永远不知道你的手机后台到底有多少APP背着你干了多少事情。当然,系统的事情不是我们能掌控的了的。那么,我们先来看看以前为了

2021-06-16 11:56:49 1030

原创 Service生命周期及开启

在上面几章我们了解了四大组件之一的Activity的一些使用,接下来我们继续来看看四大组件的另外一个,即Service(服务)。与Activity(活动)不同,Service是属于在后台服务的,即用户在界面是感知不到的。那么,为什么需要Service呢?我们知道,在android中,系统会为我们创建一个UI线程,也叫主线程,而主线程的主要任务就是做界面交互用的,不适合在UI线程做那些耗时的操作,否则会出现ANR的错误提醒,那么那些比较耗时的操作要怎么办呢?比如,读取文件数据,获取网络,数据库操作等等,一般这

2021-06-15 14:00:06 871 1

原创 Activity的启动模式、任务栈以及标志位

上两篇讲完了Activity的生命周期的情况,接下来我们继续揭秘Activity其他神秘的面纱,首先我们先来看看关于Activity的启动模式。在讲解Activity的启动模式之前,我们先来设想一个场景:每当我们启动一个Activity的时候,系统会自动帮我们在当前Activity所属的任务栈里面创建这个Activity并置入栈中,多点几次则系统会自动创建几个,这样的设计里面好像有点傻傻的,因为很多时候我们并不想重复创建,只想要一个能够反复调用。为了解决这个问题,系统推出了Activity的启动模式来解决

2021-06-14 14:49:10 387

原创 Activity异常情况下的生命周期

既然是探究Activity异常情况下的生命周期,首先就得搞明白Activity在哪些情况下会出现异常情况。在实际的开发过程中,我们经常会碰到的异常情况大概有以下两种。情况一:资源相关的系统配置发生改变导致Activity被杀死并重新创建。这种情况产生的可能性会很多,最常见的就是旋转屏幕,当然还有就是系统提供的模式切换等等。当然,针对异常情况,系统本身提供了方法供我们处理后续事件。最重要的两个方法就是onSaveInstanceState和onRestoreInstanceState,其中onSaveIn

2021-06-13 19:10:17 152

原创 Activity正常情况下的生命周期

作为整个体系的开篇章,我们来认识一下整个Android中最常见也最重要的一个组件,即Activity。Activity是在Android开发过程中使用最为频繁的组件之一,其重要性不言而喻,接下来我们从其最基本的生命周期开始分析起,本篇的核心在于弄懂在正常情况下Activity的生命周期的执行情况。首先来看一张图:相信从事过Android开发的童靴对这张图都不会陌生,这是官方提供的关于Activity的生命周期讲解图,下面我们一个一个来剖析:在正常情况下,一个Activity会执行如下的方法:(1)

2021-06-13 19:07:12 231 3

原创 Android体系架构篇之前言

从事Android开发至今已有6年的时间了,见证了Android开发岗位的火热与冷静,从最初的Android小白到如今可以独挡一面,其中充满了太多的酸甜苦辣。古话说干一行爱一行,但是人很多时候总难做到这一点,因为兴趣并不高或者有的时候想法很多导致不愿意在自己的本职工作里面去下功夫,老天永远是公平的,你付出了多少,你就能回报多少。前面几年心有不甘,兜兜转转,走了很多的弯路,到最后也没有结果。如今时过境迁,经历了一段思想冥想期后,才发现人还是要脚踏实地才能结出你想要的果实。所以,最近抽时间将Android的知识

2021-06-13 19:03:15 180 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除