
kotlin
白云飘絮
一个偏向实用技术的宅
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ViewPager2正式版发布
ViewPager2正式版已经发布了,具体可以看官网文档,这里主要介绍用法一、引入使用ViewPager2需要导入implementation 'androidx.viewpager2:viewpager2:1.0.0'在xml中设置orientation, 或者在代码中设置setOrientation(),可以控制横纵向<androidx.viewpager2.wi...原创 2019-12-16 15:16:12 · 1614 阅读 · 1 评论 -
CameraX 概览
CameraX 是一个 Jetpack 支持库,旨在帮助您简化相机应用的开发工作。它提供一致且易于使用的 API 界面,适用于大多数 Android 设备,并可向后兼容至 Android 5.0(API 级别 21)。虽然它利用的是 camera2 的功能,但使用的是更为简单且基于用例的方法,该方法具有生命周期感知能力。它还解决了设备兼容性问题,因此您无需在代码库中包含设备专属代码。这些功能减...原创 2019-11-22 18:14:57 · 1577 阅读 · 0 评论 -
MVVM之DownLoadManager更新apk
基类代码BaseMVVMActivity在ViewModel中使用协程需要引入//viewModel协程implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-rc02'在ViewModel调用版本更新检测的方法class MainViewModel : ViewModel() { val...原创 2019-11-20 14:57:53 · 332 阅读 · 0 评论 -
Espresso之RecyclerView
测试RecyclerView需要导入androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.2.0'使用示例//actionOnItemAtPosition的第一个参数是recycleview的item位置//第二个参数是对应的动作Espresso.onView(ViewMatchers.with...原创 2019-11-19 13:57:11 · 899 阅读 · 0 评论 -
BaseMVVMActivity
BaseMVVMActivityimport android.app.DownloadManagerimport android.content.BroadcastReceiverimport android.content.Contextimport android.content.Intentimport android.content.IntentFilterimport a...原创 2019-12-02 09:23:26 · 1049 阅读 · 0 评论 -
MVVM之Architecture Components
Android Architecture Components 是谷歌在Google I/O 2017发布一套帮助开发者解决Android 架构设计的方案。里面包含了两大块内容:1.生命周期相关的 Lifecycle-aware Components2.数据库解决方案 Room本文主要为如何使用Lifecycle && LiveData && Vi...原创 2019-11-15 17:58:29 · 303 阅读 · 0 评论 -
MVVM之DataBinding模式的基本使用
简介View:主要进行视图控件的一些初始设置,不应该有任何的数据逻辑操作。Model:定义实体类,以及获取业务数据模型,比如通过数据库或者网络来操作数据等。ViewModel:作为连接 View 与 Model 的中间桥梁,ViewModel 与 Model 直接交互,处理完业务逻辑后,通过 DataBinding 将数据变化反应到用户界面上。配置在 Module:app...原创 2019-11-14 18:26:41 · 491 阅读 · 0 评论 -
Espresso测试示例
需要测试的Activity使用之前写过的一个界面,点击更新按钮便下载apk并更新,代码可见使用JobIntentService写一个下载服务class MainActivity : BaseMvpActivity<MainContract.View, MainContract.Presenter>(), MainContract.View { private v...原创 2019-11-13 14:25:01 · 745 阅读 · 1 评论 -
安卓知识总结目录(2019-12-03)
一直以来写的都很零碎不成体系,今天是时候解决这个问题,既方便了阅读,也有利于知识的归纳总结初始化开启应用程序时我们一般会写一个MyApp类继承Application,然后提供全局Application和提前初始化一些方法,这里采用的是kotlin的顶层属性方法,具体实现如下:全局Application和提前初始化SharedPreferences自安卓6.0开始便需要动态授权,这里...原创 2019-11-11 14:55:29 · 218 阅读 · 0 评论 -
常用工具类
经常使用的工具类@file: JvmName("Utils")package com.epuxun.drink.utliimport android.app.Applicationimport android.content.Contextimport android.content.SharedPreferencesimport android.graphics.Bitmap...原创 2019-11-11 14:48:35 · 148 阅读 · 0 评论 -
权限检测基类
权限检测基类abstract class BasePermissionsActivity : AppCompatActivity() { private val permissionsRequestCode = 100 //判断是否需要检测,防止不停的弹框 private var isNeedCheck = true private lateinit v...原创 2019-11-11 14:32:06 · 200 阅读 · 0 评论 -
使用JobIntentService写一个下载服务
利用封装好的BaseActivity方法开启JobIntentServiceval url = "https://raw.githubusercontent.com/xuexiangjys/XUpdate/master/apk/xupdate_demo_1.0.2.apk"updateApk(url,APK_DOWNLOAD_SUCCESSFUL)//注册apk下载成功广播regist...原创 2019-11-11 14:26:50 · 875 阅读 · 0 评论 -
全局Application
全局Application使用的是Kotlin的顶层属性import com.epuxun.drink.utli.initApplicationclass MyApp : Application() { override fun onCreate() { super.onCreate() initApplication(this) }}...原创 2019-11-11 14:13:09 · 407 阅读 · 0 评论 -
Http工具类
网络请求在安卓开发中非常常见,写一个工具类能有效的节省开发时间提高效率,这里就分享一下,有不足的请斧正引入implementation("com.squareup.okhttp3:okhttp:4.2.1")需要的权限<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />...原创 2019-10-23 15:36:31 · 952 阅读 · 0 评论 -
MVP 契约模式(Kotlin)
1.创建View、Presenter和Model的基类interface BaseModelinterface BasePresenterinterface BaseView2.创建契约类Contract管理View、Presenter和Model的接口interface TestContract { interface View : BaseView { f...原创 2019-06-14 15:05:16 · 620 阅读 · 0 评论 -
kotlin协程学习笔记
集成kotlinx.coroutinesimplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.2.1'混淆# ServiceLoader support-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}-keepname...原创 2019-06-14 14:59:15 · 580 阅读 · 0 评论 -
(kotlin)TabLayout+viewPager+fragment
导入兼容包implementation ‘com.android.support:design:27.1.1’一、mainprivate val mTitleIcons = intArrayOf(R.drawable.msg2, R.drawable.home1, R.drawable.management2)private val mTitleIconsSelected = intArr...原创 2018-11-15 17:35:47 · 2539 阅读 · 0 评论