- 博客(26)
- 收藏
- 关注
原创 Android组件化开发
随着项目的功能越来越多,项目变得特别臃肿,想使用组件化来解决一下这个问题,就去学习了一下Android组件化开发的流程。今天我将会给大家介绍使用阿里的ARouter实现组件化开发在撸代码之前,有必要知道以下几个问题一、为什么要使用组件化开发?刚开始开发项目时,所有的代码在一个模块中处理,对一个功能的某个地方代码进行修改调试,都需要重新编译整个工程,效率十分低下。而且不利于多人团队开发,之后...
2019-09-23 09:02:42 161
原创 MVVM架构思想
MVVM即Model-View-ViewModel的简写。即模型-视图-视图模型。模型(Model)指的是后端传递的数据。视图(View)指的是所看到的页面。视图模型(ViewModel)是mvvm模式的核心,它是连接view和model的桥梁。它有两个方向:一是将模型(Model)转化成视图(View),即将后端传递的数据转化成所看到的页面。实现的方式是:数据绑定。二是将视图(View)转化成模...
2019-09-19 20:10:50 1039
原创 Android布局优化之merge标签
在自定义View的研究中,偶然遇到了merge标签,发现它确实有一些作用,觉得它恒有意思,想给大家分享一下。有关Merge标签的使用merge的使用分为几种情况:一、merge标签嵌套在Framlayout中使用大家在使用Framlayout,动态向Framelayout中添加Fragment,在自定义的Fragment的布局中,它的根标签就可以使用merge标签来代替,这样使用的好处是可...
2019-08-31 10:04:37 757 1
原创 Application的onTerminate()函数
Android中Application的onTerminate()函数只是用来在Android设备的模拟器中,如果application退出才会回调。但是,在产品级(即运行在Android真机设备)应用App,不会再整个App退出时候回调这个onTerminate()函数。然而试想,又有谁会开发一个App目标运行设备仅仅是模拟器而不是真机呢?开发一个App肯定是打算运行在真实的Android设备上...
2019-08-31 08:51:28 1550
原创 Bitmap三级缓存与二次采样
Bitmap三级缓存与二次采样一、为什么Bitmap三级缓存?没有缓存的弊端 :费流量, 加载速度慢加入缓存的优点: 省流量,支持 离线浏览二、原理三、思路从内存获取图片, 如果存在, 则显示; 如果不存在, 则从SD卡中获取图片从SD卡中获取图片, 如果文件中存在, 显示, 并且添加到内存中; 否则开启网络下载图片从网络下载图片, 如果下载成功, 则添加到缓存中, 存入SD卡...
2019-08-26 12:02:17 271
原创 Android 通知 Notification 详解
在做一个IM项目,当收到消息监听时,需要后台服务发送一个通知,研究了一下Notification,总结如下:如何创建并显示Notification创建通知需要两个比较重要的类:NotificationManager和NotificationNotificationManager :NotificationManager类是一个Android系统的服务类,它用来管理所有的通知Notific...
2019-08-06 20:26:29 339
原创 Retrofit结合RxJava实现网络请求
Retrofit2.0+RxJava2.0实现网络请求利用Refrogit2.0与RxJava2.0结合的使用 达到了非常简单就可以完成请求网络一、先导入依赖包:compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' co...
2019-07-26 22:14:36 142
原创 RxJava:网络请求中的线程切换
RxJava中的线程切换一般来说我们在使用网络请求数据后需要使用View来显示,网络请求当然是在子线程中运行,当获取到数据后就需要切换到UI线程来显示,否则会报错,RxJava中帮我们处理好了线程切换的问题。对于线程切换,RxJava中的Observable类提供了两个接口,如下:@SchedulerSupport(SchedulerSupport.CUSTOM)public final ...
2019-07-25 22:02:54 341
原创 RxJava(二)、创建型操作符
这篇RxJava笔记参考了拭心的博客这篇博客呢,想给大家讲一讲RxJava中的创建型操作符。创建型操作符createdeferEmptyNeverThrowFromIntervalJustRangeRepeatRepeatWhenStartTimer创建型操作符创建型操作符即用于创建 Observable 的操作符。1、RxJava 中,crea...
2019-07-24 21:30:48 117
原创 RxJava(一)、初识RxJava
RxJava"是什么,为什么,怎么办”是认识问题的逻辑思维过程,这篇文章也是这样来解释RxJava的RxJava是什么?RxJava 在 GitHub 主页上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 ...
2019-07-19 22:20:01 341
原创 Kotlin学习笔记(七):类委托与委托属性
委托在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ...
2019-07-17 08:25:26 143
原创 Android自定义View
自定义View一、自定义View的分类继承View或者ViewGroup类,重写onDraw方法进行绘制,调用invalidate方法重新绘制,常见的有绘制钟表,绘制圆形进度条自定义组合控件,即将几种控件组合起来形成一个新的控件,这个新的组合控件就会整合了原来每一个控件的功能,常用的有自定义页面的ToolBar,自定义输入框继承某一个控件,在该控件的基础之上添加新的功能。lis...
2019-07-15 22:10:09 159
原创 Kotlin学习笔记(六):数据类与密封类
数据类我们经常创建一些只保存数据的类。在这些类中,一些标准函数往往是从数据机械推导而来的。在 Kotlin 中,这叫做 数据类 并标记为 data: data class Person(val name: String , val age: Int){ ... }为了确保生成的代码的一致性以及有意义的行为,数据类必须满足以下要求:主构造函数需要至少有一个参数;主构造函数的所有参数需...
2019-07-12 22:06:42 124
原创 Android 面试指南
Android学习笔记1、10个基本简单的linuxmkdir 创建文件夹rmdir 删除文件夹rm 删除文件touch 创建文件cat 查看文件find查找目录mv移动(修改)文件cp 拷贝文件cd 切换当前目录tail 查看文件尾部ls 列出文件清单reboot重启ps 查看系统进程2、adb命令adbdevice 查看连接计算机的设备adb reboo...
2019-07-12 15:56:11 213
原创 Kotlin学习笔记(五):接口
接口Kotlin 中的接口与Java 8 类似 ,既包含抽象方法的声明,也包含实现。与抽象类不同的是,接口无法保存状态。它可以有属性,但必须声明为抽象或 提供 访问器 实现。接口使用关键字 interface 来定义 ,如下: interface MyInterface{ fun add() fun max(){ ... } }实现接口一个类可以实现一个或多个接口 ...
2019-07-11 17:02:43 132
原创 Kotlin学习笔记(四):操作符
一元操作符Kotlin中一元操作符分为 一元前缀操作符 和 递增与递减操作符一元前缀操作符这些操作符以及所有其他操作符都针对基本类型做了优化,不会为它们引入函数的调用:+a ==> a.unaryPlus()-a ==> a.unaryMinus()!a ==> a.not()递增递减运算符inc() 和 dec() 函数返回一个值,它用...
2019-07-10 15:28:22 282
原创 Kotlin学习笔记(三):函数与Lambda表达式
函数函数声明在Kotlin 中的函数使用 fun 关键字声明: fun eat(food: Food){}override 写在方法前面,用来说明此方法是继承父类,重写的方法: override fun onCreate(savedInstanceState: Bundle?) { } 函数用法和Java一样,Kotlin调用函数如下: val max = max(2,3)...
2019-07-10 00:37:21 219
原创 Kotlin学习笔记(二):类与对象
类如果你想定义一个类,你只需要使用 class 关键字。 class Student{ }它有一个默认唯一的构造器,大部分情况下我们只需要这个使用默认的构造器。参数放在类名后面,如果这个类没有任何内容就可以省略大括号: class Student(name: String, age: Int ){ }而构造函数的函数体可以写在 init 块中: class Student...
2019-07-07 14:00:49 145
原创 Kotlin学习笔记(一):变量与常量
变量在Kotlin中,定义变量是用关键词开始,然后是变量名称,最后才是变量类型,如下: var a : Int =20如果不指明变量的类型,编译器也能分析出 = 后的表达式的值,并将它的类型作为变量的类型,这是Kotlin的特点之一:类型推断。如下: var str ="hello world!"如果变量没有初始化值,编译器无法推断出它的类型,这时就必须显式地指定类型,如下: va...
2019-07-05 21:07:38 519 1
原创 Context,what Context?
Context,what Context?本文来源于:https://possiblemobile.com/2013/06/Context/Context(以下用上下文代替)可能是Android应用程序中使用最多的元素……它也可能是被误用最多的元素。上下文对象是如此常见,并且传递得如此频繁,因此很容易创建您不打算创建的场景。加载资源、启动新活动、获取系统服务、获取内部文件路径和创建视图都需要用...
2019-06-25 16:08:57 149
原创 Banner轮播图
Banner轮播图项目开发中需要一个轮播图,在Github上找了一下,最好的就是这个banner了一、 配置首先,需要在module的build.gradle中添加依赖:implementation 'com.youth.banner:banner:1.4.10' //轮播图或者引用本地lib:compile project(':banner')添加权限到 AndroidManif...
2019-06-23 15:03:34 378
原创 Kotlin简介
一、Kotlin简介Kotlin 是一个用于现代多平台应用的静态编程语言 ,由 JetBrains 开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。Kotlin已正式成为Android官方支持开发语言。二、开放源码JetBrains基础编译器(他们将其改为kompiler--开创了一系列以K字打头的用语--甚至连 contri...
2019-05-16 10:12:30 428
原创 Android WebView
一 WebView基本组件1、 WebSettingsWebSettings用来对WebView做各种设置获取: WebSettings webSettings = mWebView .getSettings();WebSettings的常见设置如下所示:***Android转JS处理setJavaScriptEnabled(true); //支持jssetPluginsEnabl...
2019-01-04 00:01:23 263
原创 解读Spinner与AutoCompleteTextView
一、spinner(下拉列表框)的常用XML属性1、android:entries 使用数组或集合资源作为下拉框列表的值2、android:background 设置spinner背景颜色 但 不包括下拉框3、android:popupBackground 设置下拉框的背景颜色4、android:prompt 该提示在下拉列表对话框显示时显示——对话框的标题,但只有在dialog状...
2019-01-02 21:44:17 243
原创 了解Android 开发
**崛起之路 --------Android入门第一课 **1.Android是由Google公司推出,基于Linux开源的操作系统2.安卓框架: 4层(Linux内核、核心库<C语言编写>、应用框架、应用程序<Java语言编程>)3.如何运行?由.java文件编译生成.class文件,打包成.dex文件,生成.apk文件4. DVM:运行于寄存器java编译生成....
2018-12-25 20:48:12 185
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人