![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android基础
文章平均质量分 83
Android基础知识
Vinson武
Android开发程序猿
展开
-
四大组件之Activity详解.md
Activity生命周期image.png注意点Activity切换时,旧Activity的onPause会先执行,然后才会启动新的Activity。即activityA跳到activityB时执行顺序为:activityA-onPause()再 activityB-onCreate()、activityB-onStart()、activityB-onResume(),最后才...原创 2019-12-29 18:06:51 · 189 阅读 · 0 评论 -
四大组件之Service详解
生命周期694018-99da2307c5d69134.jpg从图中可以看出Service的生命周期会根据启动方式的不同有不同的生命周期回调。两种启动方式分别是startService和bindService。两种启动方式的生命周期startService的生命周期是:onCreate() -> onStart() -> onDestroy()bindSer...原创 2020-01-04 16:13:18 · 404 阅读 · 0 评论 -
四大组件之Broadcast详解
广播相关定义广播是一个全局的监听器,是Android的四大组件之一,分为两个角色:广播发送者和广播接收者。作用:监听/接收应用发出的广播消息并作出响应。应用场景:不同组件之间的通信(包括应用内和应用间);多线程下的通信;与android系统的通信。广播采用的是观察者的设计模式,基于消息的发布 / 订阅事件模型,将广播的发送者和接收者解耦,使得系统方便集成,更易扩展。模型中的三个角色...原创 2020-01-08 09:20:22 · 471 阅读 · 0 评论 -
四大组件之ContentProvider详解
相关定义ContentProvider是Android提供给上层的一个组件,主要用于实现数据访问的统一管理和数据共享。这里的数据管理是通过定义统一的访问接口来完成,如增删改查。同时,它采用了类似Internet的URL机制,将数据以URI的形式来标识,这样其他App就可以采用一套标准的URI规范来访问同一处数据,而不用关心具体的实现细节。ContentProvider有助于应用管理其自身和...原创 2020-01-08 15:32:06 · 964 阅读 · 0 评论 -
Fragment详解
Fragment生命周期Fragment必须是依存与Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期。官网这张图很好的说明了两者生命周期的关系:image.pngonAttach(Activity)当Fragment与Activity发生关联时调用。onCreateView(LayoutInflater, ViewGroup,...原创 2020-01-09 17:42:05 · 202 阅读 · 0 评论 -
Android的View事件分发机制
了解Activity的构成一个Activity包含了一个Window对象,这个对象是由PhoneWindow来实现的。PhoneWindow将DecorView作为整个应用窗口的根View,而这个DecorView又将屏幕划分为两个区域:一个是TitleView,另一个是ContentView,而我们平时所写的就是展示在ContentView中的。触摸事件的类型触摸事件对应的是MotionE...原创 2020-02-26 13:48:25 · 272 阅读 · 0 评论 -
Android动画深入分析
Android的动画可以分为三种:View动画、帧动画和属性动画。(其实帧动画也可以算属于View动画,只是表现形式不同而已)View动画View动画的作用对象是View,它支持4中动画效果,分别是平移、缩放、旋转和透明度。View动画的种类View动画的四种变换效果对应着Animation的四个子类:TranslateAnimation、ScaleAnimation、RotateAnim...原创 2020-02-26 23:40:34 · 148 阅读 · 0 评论 -
RecycleView缓存
RecycleView内存泄漏RecycleView缓存、回收机制RecyclerView是以ViewHolder作为单位进行回收。Recycler是RecyclerView回收机制的实现类,他实现了四级缓存:mAttachedScrap: 缓存在屏幕上的ViewHolder。mCachedViews: 缓存屏幕外的ViewHolder,默认为2个。ListView对于屏幕外的缓存都会调...原创 2020-04-16 15:23:27 · 243 阅读 · 0 评论 -
ViewStub 使用和懒加载原理
概述有时需要某个布局在一开始不显示,在某个条件下才显示,可以通过visable属性来控制,但这样效率非常低,因为虽然布局隐藏来,但还在布局中,仍会解析这些布局。可以使用ViewStub控件来解决这个场景并提高效率。“懒加载”就是为了让程序尽可能快地启动而提出的一个优化策略,即让那些对用户不重要或者不需要立即显示的布局控件做延迟加载,只在需要显示的时候才进行加载,这样就可以让程序在启动显示的过...原创 2020-04-16 15:25:39 · 266 阅读 · 0 评论 -
Android中Bitmap的使用
Bitmap使用需要注意哪些问题 ?要选择合适的图片规格(bitmap类型):通常我们优化Bitmap时,当需要做性能优化或者防止OOM,==我们通常会使用RGB_565==,因为ALPHA_8只有透明度,显示一般图片没有意义,Bitmap.Config.ARGB_4444显示图片不清楚,Bitmap.Config.ARGB_8888占用内存最多。:ALPHA_8 每个像素占用1by...原创 2020-04-16 15:28:19 · 317 阅读 · 0 评论 -
Android线程相关
==进程和线程==进程:进程是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。线程:线程是独立调度的基本单位。一个进程中可以有多个线程,它们共享进程资源。区别拥有资源:进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。调度:线程是独立调...原创 2020-04-16 15:29:10 · 118 阅读 · 0 评论 -
Android的Handler消息机制
Handler消息机制Android消息循环流程图image.png每个 Handler 都会跟一个线程绑定,并与该线程的 MessageQueue 关联在一起,从而实现消息的管理以及线程间通信。主要涉及的角色如下所示:message:消息。MessageQueue:消息队列,负责消息的存储与管理,负责管理由 Handler 发送过来的Message。读取会自动删除消息,...原创 2020-04-16 15:40:12 · 199 阅读 · 0 评论 -
ConstraintLayout使用,提升布局性能
ConstraintLayout是谷歌在2016年I/O大会上发布的全新布局,基本可以实现其他布局的全部功能,重要的是它解决了负责布局过多嵌套的问题,使得性能上有了很大提高。参考分析ConstraintLayout性能优势对Android Studio的版本要求是2.2以上,现在Android Studio已经出到3.0+了,在新建布局文件时也是默认推荐用ConstraintLayout,而且它...原创 2019-02-27 09:00:20 · 483 阅读 · 0 评论 -
Material Design动画效果实现
Material Design介绍Material Design是Google官方在14年Google I/O上推出了全新的设计语言,一并推出了一系列实现Material Design效果的控件库Android Design Support Library。其中,有TabLayout, NavigationView(常和DrawerLayout配合使用实现抽屉效果), TextInputLayo...原创 2018-12-22 15:40:25 · 852 阅读 · 0 评论 -
Android 为ListView上每个item上的按钮添加监听遇坑!
背景这周有一个新的需求,需要在原本项目的基础上修改,需要在原本的listView每个item上加一个按钮,监听这个按钮的点击事件做出响应。一想这很简单呀,于是马上开干,实现思路如下:在adapter中为每个item上的按钮添加监听,并在adapter中提供接口回调,在界面fragment中响应点击回调事件。实现(伪代码)adapter实现代码public class MyAdapter e...原创 2018-12-01 16:25:35 · 3936 阅读 · 1 评论 -
android的SwipeRefreshLayout+RecycleView实现上拉加载下拉刷新
介绍本文主要实现的是上拉加载更多功能,下拉刷新使用的是Google官方的SwipeRefreshLayout控件,但是却没有实现上拉加载。我们一般用到上拉加载功能都是在列表显示中,所以本文用SwipeRefreshLayout配合RecycleView实现上拉加载和下拉刷新功能。实现下拉刷新我们用SwipeRefreshLayout原生的能力即可,主要是如何实现上拉加载呢?简单的实现思路如下...原创 2018-12-02 23:54:00 · 1980 阅读 · 0 评论 -
TextView+SpannableString实现Android中富文本的显示及点击冲突解决
前言最近项目中需要实现一个文章跟读效果的显示,还要能够点击文章中的单词能够弹出对话框显示单词的英美发音,那么如何实现这样的需求呢?当然是利用SpannableString啦,下面就结合项目中使用到的和参考其他博客的成果,整理一下常用的用法吧。 SpannableString其实很多方法和属性与String类似,只不过它比普通的字符串多了能够带有一些富文本属性,比如显示不同颜色、带下划线删除线...原创 2018-05-30 20:52:50 · 2381 阅读 · 1 评论 -
关于异常处理的不良习惯和改正方法
关于异常处理的不良习惯OutputStreamWriter out = ... java.sql.Connection conn = ... try { // ⑸ Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery( "select uid, name from us原创 2018-01-13 21:08:41 · 423 阅读 · 0 评论 -
DatePicker、TimePicker的使用和改变字体样式及picker大小
DatePicker、TimePicker的使用DatePicker的使用1.DatePicker是Android自带的一个日期选择期控件,能够实现日期的联动选择。使用比较简单,下面介绍一下简单的使用以及注意的点。 * 简单使用 首先在xml 中加入DatePicker的控件(用了最新的ConstraintLayout,不熟可以忽略)android.support.const原创 2018-01-13 20:54:53 · 11611 阅读 · 0 评论