Android基础
者文
There is nothing worse in life than being ordinary.
GitHub主页:https://github.com/zhewendev
展开
-
Android基础——Android系统概览
1 android系统架构参考文献:API参考文献一:第一行代码android大致可以分为四层架构:Linux内核层,系统运行库层、应用框架层和应用层Linux内核层android系统是基于Linux内核,这一层为android设备的各种硬件提供了底层驱动。系统运行库层通过一些C/C++库来为android提供了主要的特性支持。还有android运行时库,主要提供...原创 2019-04-15 19:22:52 · 7897 阅读 · 0 评论 -
Nine-patch图片(.9图)
1 Nine-Patch图片什么是**.9**图片图片后缀名前有.9的图片,例如pic.9.png这样的图片9图的作用图片拉伸的时候特定区域不会发生图片失真,不失真的区域可以由我们自己绘制。制作9图的工具Android SDK自带:draw9patch.bat,在sdk目录下的tools文件夹中NinePatchEditor,做了一些优化,支持批量操作。Andr...原创 2019-05-10 14:05:28 · 749 阅读 · 0 评论 -
Android基础——PendingIntent理解
1. PendingIntent认识PendIntent其实是Intent的封装,这就带来了几个问题:为什么要有PendingIntent?与Intent有什么区别?PendingIntent的应用场景主要有哪些?它的内部是如何实现的?1.1 与Intent的区别Intent 是意图的意思。Android 中的 Intent 正是取自这个意思,它是一个消息对象,通过它,Andr...原创 2019-05-16 15:46:42 · 37829 阅读 · 4 评论 -
Android通知——Notification使用浅析(一)
1. 序言当某个应用程序希望想用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容。通知栏和抽屉式通知栏均是由系统控制,用户可以随时查看。通知的用法比较灵活,既可以在服务中创建,又可以在广播里创建。通知的常见用途:显示接收的短消息,及时消息等信息(如QQ,微信、新浪、短信等)...原创 2019-05-17 09:58:33 · 1047 阅读 · 0 评论 -
Android基础——Notification 8.0适配详解
1. Android 8.0 系统通知栏适配NotificationChannel是android8.0新增的特性,如果App的targetSDKVersion>=26,没有设置channel通知渠道的话,就会导致通知无法展示。什么是通知渠道呢?顾名思义,就是每条通知都要属于一个对应的渠道。每个App都可以自由地创建当前App拥有哪些通知渠道,但是这些通知渠道的控制权都是掌握在用户手上的...原创 2019-05-17 15:43:12 · 1730 阅读 · 2 评论 -
Android基础——Notification使用浅析(二)
1. 设置优先级优先级描述Notification.PRIORITY_MAX重要而紧急的通知,通知用户这个事件是时间上紧迫的或者需要立即处理的。Notification.PRIORITY_HIGH高优先级用于重要的通信内容,例如短消息或者聊天,这些都是对用户来说比较有兴趣的Notification.PRIORITY_DEFAULT默认优先级用于没有特殊优先级...原创 2019-05-17 17:12:01 · 632 阅读 · 0 评论 -
Android服务——Service使用浅析(二)
相关文档:Android服务——service使用浅析(一)1. IntentService 基本使用如果直接把耗时线程放到Service中的onStart()方法中,容易引起**ANR(Application Not Responding)**异常.Service不是一个单独的进程,与应用程序同在一个进程中;Service不是一个线程,避免在Service中进行耗时操作。我们可以用到之前...原创 2019-05-17 19:49:47 · 507 阅读 · 0 评论 -
Android相关部分总目录页
1. Android基础部分2. Android视图动效部分3. Android框架部分4. Android源码分析部分原创 2019-05-18 00:06:09 · 278 阅读 · 1 评论 -
Android控件——“沉浸式“状态栏实现(StatusBar)(上)
1. 序言关于沉浸式状态栏,第一反应过来的效果类似网易云音乐首页:这个效果其实就是让背景图片利用系统状态栏的空间,从而让背景图片与状态栏融为一体。首先我们来理解一下沉浸式的含义。沉浸式即给用户提供完全沉浸的体验,例如看电影,玩游戏的时候充满了整个屏幕画面,没有其他因素干扰,避免了第三方因素的打扰。如果这个时候顶部出现一个状态栏,会极大的影响使用体验。现在常说的”沉浸式“状态栏一般是指状...转载 2019-05-30 19:56:47 · 2118 阅读 · 0 评论 -
Android控件——沉浸式状态栏实现(下)
1. 状态栏设置全览前文简单介绍了如何实现一般意义上的"沉浸式状态栏”和真正意义上的状态栏,这里详细介绍以下状态栏的其他用法,比如设置状态栏透明度、状态栏主题颜色、控件与状态栏重叠等问题。开门见山,代码奉上: public class StatusBarUtil { public static final int DEFAULT_STATUS_BAR_ALPHA = 112; ...转载 2019-05-30 20:48:53 · 817 阅读 · 0 评论 -
Android广播——Broadcast使用探索
1.原创 2019-05-28 17:27:45 · 397 阅读 · 0 评论 -
Android组件——ContentProvider使用探索
1.原创 2019-05-29 10:41:29 · 425 阅读 · 0 评论 -
Android空间——RecyclerView系列二(LayoutManager的自定义与使用)
1 LayoutManager1.1 LayoutManager简单分析布局管理器,通过设置不同的布局管理器,来控制这些Item的排列方式,其中包含了Item View的获取与回收。RecyclerView提供的布局管理器:LinearLayoutManager 以垂直或水平滚动列表方式显示项目GridLayoutManager 在网格中显示项目。StaggeredGridLayou...转载 2019-07-08 20:16:08 · 2115 阅读 · 1 评论 -
Android控件——RecyclerView系列三(Item Decoration)
1 ItemDecoration前述文章的例子item间并没有分割线,RecyclerView并没有支持divider这样的属性,我们可以自己定制分割线。RecyclerView添加分割线的方法是:mRecyclerView.addItemDecoration(),该方法的参数为RecyclerView.ItemDecoration,该类为抽象类该类的源码为:public abstract...原创 2019-07-09 15:11:08 · 1304 阅读 · 0 评论 -
Android控件——RecyclerView系列四(Item Animator)
1. Item Animator在实际开发中,我们想要让自己的界面变得更加酷炫,免不了加入动画这个元素,而RecyclerView能够通过setItemAnimator(ItemAnimator animator)设置添加、删除、移动、改变的动画效果。RecyclerView提供了默认的ItemAnimator实现类:DefaultItemAnimator。1.1 DefaultAnimato...转载 2019-07-09 16:01:17 · 2422 阅读 · 0 评论 -
Android控件——RecyclerViw系列五(监听)
1. RecyclerView Item监听1.1 添加setOnItemClickListener接口RecyclerView默认没有像ListView一样提供setOnItemClickListener()接口,网上大部分的解决方案都是通过给每个item添加onClickListener来模仿一个伪onItemClickListener,这种为每个item添加点击监听的解决方案浪费性能。...转载 2019-07-10 10:28:49 · 688 阅读 · 0 评论 -
Android IPC通信机制(一)
1. IPC序言IPC即Inter-Process Communication,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程线程是CPU调度的最小单元,是一种有限的系统资源。进程一般指一个执行单元,在PC和移动设备上是指一个程序或者应用。进程与线程是包含与被包含的关系。一个进程可以包含多个线程。最简单的情况下一个进程只有一个线程,即主线程(例如Android的UI线程)。...原创 2019-05-07 16:09:06 · 426 阅读 · 0 评论 -
Android服务——Service使用浅析(一)
1. 引言概述Service是android中实现程序后台运行的解决方案,适合去执行那些不需要和用户交互且长期运行的任务。服务的运行不依赖任何用户界面。Service并不是运行在一个独立的进程当中,依赖于创建服务时所在的应用程序进程。某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止。1.1 Android多线程编程相关概念:程序:为了完成特定任务,用某种语言编写的一组指令集合(...原创 2019-05-14 23:06:39 · 375 阅读 · 0 评论 -
Android基础-Activity基本使用
1 Activity 概念参考文献:Android指南参考文献一:第一行代码参考文献二:菜鸟教程活动是一种可以包含用户界面的组件,主要用于和用户进行交互。活动提供应用程序绘制其UI的窗口。此窗口通常填充屏幕,但可能小于屏幕并浮动在其他窗口的顶部。通常,一个活动在应用程序中实现一个屏幕。例如,应用程序的某个活动可能会实现*“首选项”*屏幕,而另一个活动会实现“ *选择照片”*屏幕。...原创 2019-04-15 19:41:23 · 8422 阅读 · 2 评论 -
Android控件——TextView与EditText
1. TextView使用参考文献:参考文献一:菜鸟教程参考文献二:第一行代码常见单位介绍:dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x...原创 2019-04-17 16:24:51 · 1301 阅读 · 0 评论 -
Intent使用
1. Intent基本使用1.1 使用显式IntentIntent事Android程序中各组件之间进行交互的一种重要方式,不仅可以指明当前组件想要执行的动作,还可以在不同组件之间进行传递数据。被用于启动活动,启动服务以及发送广播等场景。Activity类中提供一个startActivity()方法,专门用于启动活动,接受一个Intent参数,构建好的Intent传入该方法就可以启动目标活动了...原创 2019-04-16 16:17:58 · 966 阅读 · 0 评论 -
Android控件——Button与ImageView
1. Button原创 2019-04-17 15:52:59 · 881 阅读 · 0 评论 -
布局加载器——LayoutInflate
1 LayoutInflate基本使用1.1 LayoutInflate使用场景LayoutInflate是什么?答:一个用于加载布局的系统服务,就是实例化与Layout XML文件对应的View对象,称之为布局加载器,不能直接使用, 需要通过getLayoutInflater( )方法或getSystemService( )方法来获得与当前Context绑定的 LayoutInflate...原创 2019-04-23 16:09:47 · 684 阅读 · 0 评论 -
Adapter基本使用
1. Adapter基本介绍Android是完全遵循MVC模式设计的框架,Activity是Controller,layout是View。因为layout五花八门,很多数据都不能直接绑定上去,所以Android引入了Adapter这个机制作为复杂数据的展示的转换载体,所以各种Adapter只不过是转换的方式和能力不一样而已图解:Model:通常可以理解为数据,负责执行程序的核心运算与判断...原创 2019-04-24 10:11:45 · 1104 阅读 · 0 评论 -
Android布局介绍
Android系统应用程序一般是由多个Activity组成,这些Activity以视图的形式展现在我们面前,视图是由一个个组件构成。组件即前面的那些Button等等。这些布局的显示需要用到布局管理器。在每个Android项目的目录下都有个res/layout目录,这个目录就是用来存放布局文件的。1. 线性布局LinearLayout又称线性布局,这个布局会将它所包含的控件在线性方向上向上一次...原创 2019-04-24 15:01:09 · 459 阅读 · 0 评论 -
Android控件——ListView基本使用
1. ListView简单介绍ListView组件可以实现循环显示自定义组件的功能。简单给出一个ListView的使用实例:首先在你需要显示ListView的XML文件里声明一个ListView:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layo...原创 2019-04-24 17:10:24 · 7248 阅读 · 1 评论 -
Android——EventBus使用浅析
1. EventBus序言EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent、Handler、BroadCast在Fragment、Activity、Service、线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。EventBus在GitHub上的开源库地址,刚开始使用的可以看一下,GitHub上有最基本的使用方法。EventBu...原创 2019-05-13 18:01:48 · 282 阅读 · 0 评论 -
Android控件——HorizontalScrollView使用(一)
1. HorizontalScrollView简单使用Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息;Gallery还可以和ImageSwitcher组件结合使用来实现一个通过缩略图来浏览图片的效果;但Gallery被谷歌废弃了,Google推荐使用ViewPager和HorizontalScrollView来实现Gallery的...转载 2019-05-14 10:22:41 · 23850 阅读 · 1 评论 -
Android—— Fragment使用浅析(一)
1. 基本概述Fragment是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充分地利用大屏幕的空间,出现的初衷是为了适应大屏幕的平板电脑,可以将其看成一个小型Activity,又称作Activity片段。使用Fragment可以把屏幕划分成几块,然后进行分组,进行一个模块化管理。Fragment不能够单独使用,需要嵌套在Activity中使用,其生命周期也受到宿主Activity的生...原创 2019-05-14 11:43:34 · 619 阅读 · 0 评论 -
Android活动——Activity生命周期与启动模式
1. Activity生命周期分析这里生命周期分为两部分内容:一是典型情况下的生命周期指在有用户参与的情况下,Activity所经过的生命周期的改变另一部分是异常情况下的生命周期Activity被系统回收或由于当前设备的Configuration发生改变从而导致Activity被销毁重建,与典型情况下的关注点略有不同。1.1 典型情况下的生命周期正常情况下会经过如下生命周期:...原创 2019-05-07 09:42:01 · 313 阅读 · 0 评论 -
Android基础——Viewpager使用浅析(一)
ViewPager主要包括以下内容:ViewPager 基本使用(简介、适配器)ViewPager + TabLayout + Fragment 的使用ViewPager 轮播图的使用(指示器、标题、自动轮播、首尾循环)ViewPager 的切换效果(PageTransformer)ViewPager 切换效果进阶1. 序言ViewPager就是一个简单的页面切换组件,我们可以...原创 2019-05-14 19:08:12 · 389 阅读 · 0 评论 -
Android控件——Tablayout使用浅析(一)
1. Tablelayout序言在一个app中,Tabs 使不同视图和功能之间的切换变得简单。使用 tabs 将大量关联的数据或者选项划分成更易理解的分组,可以在不需要切换出当先上下文的情况下,有效的进行内容导航和内容组织。Tablayout继承自HorizontalScrollView,用作页面切换指示器这里给出一个相关Tablayout实现的效果图:从效果图上可以看出,可以操作的属性...原创 2019-05-14 19:32:03 · 1403 阅读 · 0 评论 -
Android——ViewPager使用浅析(二)
相关文档:Android基础——ViewPager使用浅析(一)Android控件——Tablayout使用浅析(一)1. PagerAdapter的子类使用PagerAdapter时抽象类,它有两个子类,分别是FragmentPageAdapter和FragmentStatePagerAdapter,也都是抽象类。FragmentPagerAdapter是PagerAdapter的其中...原创 2019-05-14 20:51:30 · 236 阅读 · 0 评论 -
Android基础——TextView添加超链接,设置部分字体颜色等(spannableString)
1. SpannableString使用探索TextView应该是Android中使用最频繁的控件之一,在实际开发中,有时候需要显示的文字设置不同的样式或者响应事件,例如部分字体颜色是其他颜色,有的字点击之后有响应事件,有的字高亮显示等等。最简单的当然是字符拼接了。比较合适的实现方法应该是使用HTML来解决或者使用SpannableString,这里主要介绍SpannableString,其可以...原创 2019-07-05 18:01:24 · 707 阅读 · 0 评论