Kotlin中国 为您找到相关结果 331

Android三种延时执行方式对比

在android中经常会有延时执行的需求。这里对比一下几种延时执行实现方式的优劣。 1、Handler 通过Handler的postDelayed来实现延时 Integer time = 2000; Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(LaunchActivity.this,MainActivity.class); startActivity(intent); LaunchActivity.this.finish(); } },time); Handler的源码位于**/fra...阅读全文

博文 2018-03-25 00:02:57 4ndr0id

2018年快来了,BAT等一二线互联网公司Android面试题汇总

眼就到了2017年11月,离2018剩下不到60天了,很多人估计正在跳槽的路上,整理一份Android高级开发工程师面试集锦,对照这些问题进行复习,将会事半功倍。废话不多说,直接上干货,由于是整理于网络,就不标明原创,希望大家多多分享和转发给有需要的同学。 阿里巴巴 LRUCache原理 图片加载原理 模块化实现(好处,原因) JVM 视频加密传输 统计启动时长,标准 如何保持应用的稳定性 ThreadLocal 原理 谈谈classloader 动态布局 热修复,插件化 HashMap源码,SpareArray原理 性能优化,怎么保证应用启动不卡顿 怎么去除重复代码 SP是进程同步的吗?有什么方法做到同步 介绍下SurfView HashMap实现原理,ConcurrentHashMap ...阅读全文

博文 2017-11-23 14:02:59 东街小霸王

Android TextView setText卡顿问题

TextView 是经常使用控件之中的一个,最经常使用的方法是setText() 。可是 我们在显示大量的文本的时候,使用setText还是会有一些性能的问题。 这篇文章 关于TextView的setText 的性能问题 和 如何优化。 先来介绍些基本知识 Android中的TextView是整个framework中最复杂的控件之中的一个,负责Android中显示文本的大部分工作,framwork中的很多控件也直接或者间接的继承于TextView。比如Button,EditText等。其内部实现也相当复杂。TextView中很多操作都很繁重。比如setText操作,须要设置SpanWatcher,或者须要重现创建一个SpannableString,还须要依据情况又一次创建TextLayout...阅读全文

博文 2017-07-26 00:00:31 tlnshuju

Spring Boot 应用监控:Actuator与 Admin >《Spring Boot 2.0极简教程》(陈光剑)

第 III 部分Spring Boot 系统监控、测试与运维 Spring Boot 应用监控:Actuator与 Admin 《Spring Boot 2.0极简教程》(陈光剑)—— 基于 Gradle + Kotlin的企业级应用开发最佳实践 在企业级应用中,对系统进行运行状态监控通常是必不可少的。Spring Boot提供了 Actuator 模块实现应用的监控与管理,对应的起步依赖是spring-boot-starter-actuator。spring-boot-actuator模块提供了一个监控和管理生产环境的模块,可以使用http、jmx、ssh、telnet等拉管理和监控应用。它提供了应用的审计(Auditing)、健康(health)状态信息、数据采集(metrics gat...阅读全文

博文 2018-04-15 13:03:44 东海陈光剑

Android 中Timer和TimeTask完成定时任务

1. Timer 用法 Timer作用:延时或循环执行。 使用带period参数的schedule方法该timer以period为周期,循环执行run方法。--------循环执行。 使用不带period参数的schedule方法则该timer只在delay时间到来时执行一次。--------单次执行。 2. 注意 TimerTask运行在一个单独的线程里,而不是UI线程。所以使用Android timer时,注意android的单线程原则,确保线程安全。不要在TimerTask的run方法中做UI相关的操作,如:TextView.setText()等,这样可能会导致UI线程阻塞。如果需要可以使用handler向UI线程发消息,具体处理由UI线程自己完成。在使用完Timer之后,要使用Tim...阅读全文

博文 2018-05-27 00:02:49 afxvivi

ObjectBox 的高级使用

根据条件查询 var condition = queryCondition.text.toString() if (condition.isEmpty()) return toast("请输入查询条件") var queryResult = userBox.query().equal(User_.name, condition).build().find() 查询对象的复用 先初始化查询对象: userQuery = userBox.query().equal(User_.name, "").build() 设置查询对象的参数后再查询: var queryResult = userQuery.setParameter(User_.name, condition).find() 集成 RxJa...阅读全文

博文 2017-10-21 22:03:53 Obadiah

《Kotlin 极简教程》第15章 Kotlin 文件IO操作与多线程

第15章 Kotlin 文件IO操作与多线程 我们在使用 Groovy 的文件 IO 操作的时候,感觉非常便利。同样的Kotlin也有好用的文件 IO 操作的 API。同样的在 Kotlin 中对 Java 的正则表达式功能做了一些实用的扩展。还有 Kotlin 中的多线程主要也是对 Java 的多线程 API 作了一些封装。因为这些 Java 已经有了很多的基础 API,Kotlin 并没有自己再去重复实现,而是在 Java 的基础上进行了实用的功能扩展。 本章我们就来介绍Kotlin 文件 IO 操作、正则表达式以及多线程相关的内容。 15.1 Kotlin IO 简介 Kotlin的IO操作都在kotlin.io包下。Kotlin的原则就是Java已经有的,好用的就直接使用,没有的或者...阅读全文

博文 2017-08-24 21:02:14 东海陈光剑

Kotlin学习(十八): 委托模式(Delegate)和委托属性(Delegate Properties)

委托模式已经被证明是实现继承的一个很好的替代方式,在扩展一个基类并且重写方法时,基类就必须依赖子类的实现,当不断地修改的时候,基类就会失去当初的性质,Kotlin中就将类默认为final,确保不会被修改。 有一种模式是装饰器模式,本质就是创建一个新类,实现与基类一样的接口,并且将类的实现作为一个字段保存,这样就能在基类不被修改就能直接修改基类的实例。但是这样的缺点是会造成很多的样板代码。 class DelegatingCollection : Collection { private val innerList = mutableListOf() override val size: Int get() = innerList.size override fun cont...阅读全文

博文 2017-11-27 10:01:22 u011976726

Android 定时器

载:https://www.cnblogs.com/Im-Victor/p/7457027.html 在Android开发中,定时执行任务的3种实现方法: 一、采用Handler与线程的sleep(long)方法(不建议使用,Java的实现方式)二、采用Handler的postDelayed(Runnable, long)方法(最简单的android实现)三、采用Handler与timer及TimerTask结合的方法(比较多的任务时建议使用) 下面逐一介绍: 一、采用Handle与线程的sleep(long)方法 Handler主要用来处理接受到的消息。这只是最主要的方法,当然Handler里还有其他的方法供实现,有兴趣的可以去查API,这里不过多解释。 1. 定义一个Handler类,用...阅读全文

博文 2018-08-29 16:00:48 zxj9487

Android广播机制

1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信方式,能够使用的场景例如以下: 1.同一app内部的同一组件内的消息通信(单个或多个线程之间)。 2.同一app内部的不同组件之间的消息通信(单个进程); 3.同一app具有多个进程的不同组件之间的消息通信; 4.不同app之间的组件之间消息通信; 5.Android系统在特定情况下与App之间的消息通信。 从实现原理看上,Android中的广播使用了观察者模式。基于消息的公布/订阅事件模型。因此,从实现的角度来看,Android中的广播将广播的发送者和接受者极大程度上解耦,使得系统能够方便集...阅读全文

博文 2017-07-01 15:00:33 jhcelue

开始使用Kotlin协程

先吐槽一下:(不想看闲话可直接跳至正文) 关于Kotlin协程方面, 现在文章比较少, 现存的几遍中文文章不太适合新手, 作者的水平是高, 但是没有站在初学者的角度去写(比如一上来就介绍CoroutineContext, Continuation接口, 新手肯定是看不懂的). 所以我个人建议: 如果想彻底看懂协程, 还是要去看官方的英文文档, 看英文是慢, 但是不会浪费你的时间, 看一些个人写的中文文章(包括本篇), 只能看出个一丁点皮毛, 还有很多地方理解不了, 到头来花费的时间更多. 当然这些文章也并非一文不值, 里面还是有一些有用的内容, 所以大家可以去看, 但是别太较真, 遇到不理解的地方就跳过, 别停留在那里耗费过多的时间, 因为那是别人的理解, 只有结果, 没有原因和推导, 不是...阅读全文

博文 2017-06-25 01:03:58 登高而望远

Kotlin中的延迟属性(lazy properties)

属于Kotlin中的委托属性这一章 延迟属性Lazy lazy() 是接受一个lambda 并返回一个 Lazy 实例的函数,返回的实例可以作为实现延迟属性的委托。也就是说: 第一次调用get() 会执行已传递给 lazy() 的 lambda 表达式并记录结果, 后续调用get() 只是返回记录的结果。 这里需要注意的是 调用的是 get()方法,和set没啥关系 val lazyValue: String by lazy { println("computed!") "Hello" } fun main(args: Array) { println(lazyValue) println(lazyValue) } 输出结果为 computed! Hello Hell...阅读全文

博文 2017-08-29 16:03:59 deep_sadness

2017下半年,一二线互联网公司Android面试题汇总

眼就到了2017年10月,离2018就剩下几个月了,很多人估计正在跳槽的路上,整理一份Android高级开发工程师面试集锦,对照这些问题进行复习,将会事半功倍。废话不多说,直接上干货,由于是整理于网络,就不标明原创,希望大家多多分享和转发给有需要的同学。阿里巴巴LRUCache原理图片加载原理模块化实现(好处,原因)JVM视频加密传输统计启动时长,标准如何保持应用的稳定性ThreadLocal 原理谈谈classloader动态布局热修复,插件化HashMap源码,SpareArray原理性能优化,怎么保证应用启动不卡顿怎么去除重复代码SP是进程同步的吗?有什么方法做到同步介绍下SurfViewHashMap实现原理,ConcurrentHashMap 的实现原理BroadcastRecei...阅读全文

博文 2017-10-26 09:38:24 逆流的鱼yuiop

我的Kotlin 学习之路(六)Kotlin之coroutines 框架的使用

Coroutine -> 协程不同于线程,协程不占用CPU,它只占用内存来处理耗时操作。Coroutine的原理有大牛的视频已经介绍了,我就不搬门弄斧了,这一章主要讲讲Kotlinx.coroutines 这个库的使用方法,有关于这个的中文讲解还不是很多! 我们依旧使用官方文档中加载google天气的例子来代替耗时操作 一、导入框架compile 'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.16' 二、Request类 /** * 网络请求类 * Created by zr on 2017/5/23. */ class Request (val url:String){ fun run():String{ Log.e(javaClass....阅读全文

博文 2017-06-27 14:04:02 活着工作室

Android 列表倒计时的实现(CountDownTimer)

实习一段时间了,一直想写点技术总结,但一直没找到合适的主题。刚好,最近版本中我负责的模块遇到了个线程相关问题(之前一直画界面,做点基础功能,有点乏味),列表项倒计时的实现。 于是乎,我的第一篇android技术文章就诞生了。 【醒目】该demo用Kotlin语言实现。 demo最终效果图.gif 背景介绍 需要在ListView的item里实现倒计时,初看还挺简单的,但是真正做的时候也遇到了不少坑。 网上有不少类似文章,有用对TextView扩展实现的,也有用自带的CountDownTimer实现的,本文就是用CountDownTimer,只不过多了对服务器时间的刷新控制,更贴近项目需求吧。 刚学了点kotlin,就拿这个来练练手。所以这个demo的源码就用koltin实现了,想了解学习ko...阅读全文

博文 2017-09-23 00:04:07 若l晓锋

Kotlin之UI篇

1.Android项目集成Kotlin 当我们的IDE安装好Kotlin插件(“Kotlin”)以后,项目想集成Kotlin将是一件非常轻松的事情,我们只需要在菜单栏中选择“Tools”->"Kotlin"->"Configure Kotin in Project"即可。 2. Kotlin-android-extensions插件减少模板代码 用java进行Android界面开发时,最多的模板代码findviewbyid(),于是我们项目中引入了ButterKnife进行编译时注解。到了Kotlin的时候,我们需要写的代码量就更少了,我们这样做: 在app/build.gradle中加入kotlin-android-extensions插件 apply plugin: 'kotlin-an...阅读全文

博文 2017-09-07 01:03:51 涯上月灬指香

Android Kotlin 从0到1 之从API中获取数据,发起一次简单请求!!

到这里我们可以尝试使用Kotlin 发起一次API 的请求获取数据。带你体验最简洁的数据请求,将数据解析,并展示! 首先我们需要一个API,用于请求数据。 请求地址:http://japi.juhe.cn/joke/content/text.from 请求参数: page=&pagesize=&key=26e9ed96a3ea69201844871a9ef4acec 请求方式:GET 数据格式自己拼接请求一下,我就不给了. 首先我们创建一个Request 类用于进行请求 class Request(val url:String){ // 请求方法 fun request(){ val requestData = URL(url).readText() Log.e("TAG",requestD...阅读全文

博文 2017-06-08 19:02:08 Dreamboy_a2ef

Android - Android Architecture Components - Room 在 Kotlin 中使用 (1)

参考文章 Android Room 官方文档 Room Persistence Library(官网文档翻译) 在kotlin中使用room(Room Persistence Library)和遇到的坑 Android官方ORM框架ROOM(Google I/O 2017) 啰嗦 对 Room 不了解的可以看上面文章就可以了,我就不做过多赘述。每个例子都有一个环境或场景,好吧,场景如下: 描述 用户拥有哪些书 User 字段 说明 u_id 序号 u_name 姓名 u_phone 电话 u_create_date 创建日期 u_update_date 更新日期 u_status 状态 Book 字段 说明 b_id 序号 b_name 书名 b_author 作者 b_copyright ...阅读全文

博文 2017-08-17 05:01:01 LABLENET

android SurfaceView 详解

普通的Android控件,例如TextView、Button和CheckBox等,它们都是将自己的UI绘制在宿主窗口的绘图表面之上,这意味着它们的UI是在应用程序的主线程中进行绘制的,由于应用程序的主线程除了要绘制UI之外,还需要及时地响应用户输入,否则的话,系统就会认为应用程序没有响应而出现ANR,对于一些游戏,摄像头预览、视频播放来说,它们的UI都比较复杂,而且要求能够进行高效的绘制,因此,它们的UI就不适合在应用程序的主线程中进行绘制,这时候就必须要给那些需要复杂而高效UI的视图生成一个独立的绘图表面,以及使用一个独立的线程来绘制这些视图的UI。 在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面,由于拥有独...阅读全文

博文 2018-01-30 17:01:31 TuGeLe

android 休眠唤醒机制分析— wake_lock

android 休眠唤醒机制分析— wake_lock Android的休眠唤醒主要基于wake_lock机制,只要系统中存在任一有效的wake_lock,系统就不能进入深度休眠,但可以进行设备的浅度休眠操作。wake_lock一般在关闭lcd、tp但系统仍然需要正常运行的情况下使用,比如听歌、传输很大的文件等。 Wake lock - wakelock在android的电源管理系统中扮演一个核心的角色,wakelock是一种锁的机制, 只要有task拿着这个锁, 系统就无法进入休眠, 可以被用户态进程和内核线程获得。这个锁可以是有超时的或者是没有超时的, 超时的锁会在时间过去以后自动解锁。如果没有锁了或者超时了, 内核就会启动标准Linux的那套休眠机制机制来进入休眠。 wakelock在...阅读全文

博文 2017-08-14 23:02:46 yueqiulijun

IPC通信Kotlin实现之AIDL一

前言 Kotlin一个基于 JVM 的新的编程语言,由JetBrains开发。它和java完全兼容,可做android开发用,之前一直不温不火,在google宣布做为android官方开发语言之前一直是做为小三的存在而不受android开发人员的待见,而如今已转为正室,其名气也由之前的鲜为人知到现在的妇孺皆知,曾经的星星之火,如今已有燎原之势,所过之处,并没有哀鸿遍野,反倒是破土重生,当然这对于kotlin来说也算是实至名归吧,做为一名android开发,也要有一颗时刻在追逐新世界的心,也许最终不一定能得到one piece,但这伟大的航路中一路的风光不是对生命最好的诠释么。扯淡的话就不多说了,咱们言归正传,最近也在了解kotlin中,kotlin的好处本文不做探讨,本文主要是运用kotli...阅读全文

博文 2017-06-02 16:02:40 一天到晚被猫吃的鱼

就目前市面上的面试整理来说,最全的BAT大厂面试题整理在这

标题:就目前市面上的面试整理来说,最全的BAT大厂面试题整理在这 又到了面试求职高峰期,最近有很多网友都在求大厂面试题。正好我之前电脑里面有这方面的整理,于是就发上来分享给大家。 这些题目是网友去百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。 网上的都是按照公司划分的,想找具体某一方面的知识点有点不好找,我这里就根据知识点分门别类的整理了一下,想看哪一块可以快速找到,希望可以帮助大家,祝大家求职顺利。 主要分为以下几部分: (1)java面试题 (2)Android面试题 (3)高端技术面试题 (4)非技术性问题&HR问题汇总 本篇主要介绍Java面试题。 熟练掌握java是很关键的,大公司不...阅读全文

博文 2018-07-27 14:00:02 jpfss

Kotlin 协程 coroutines

前言 首先,如果要玩协程,协程项目的地址肯定是要知道的https://github.com/Kotlin/kotlinx.coroutines kotlin并没有将协程加入标准库中,而是放在了额外的组件库中,如果想要使用协程,那么上面地址当然是必须要的。 正文 第一个协程 fun coroutinesTest(){ launch { // launch new coroutine in background and continue delay(1000L) // non-blocking delay for 1 second (default time unit is ms) Log.d("sss","World!") // print after delay } Log.d("sss",...阅读全文

博文 2018-01-25 16:02:08 街角的小丑

Rxbus2实现详解

熟悉过Rxbus1的朋友应该都知道,Rxbus1利用Rxjava中的PublishSubject的特性(只会把在订阅发生的时间点之后来自原始Observable的数据发射给订阅者)来完成事件的通知和订阅。同样Rxjava2也同样可以这样来实现,但是如果就这么换个库就结束了,本文也失去了存在的意义了是吧? 代码已经上传到github上 准备工作 Rxjava的新特性先来看看这三行代码 val subject: Subject = PublishSubject.create().toSerialized() val publishProcessor: FlowableProcessor = PublishProcessor.create().toSeria...阅读全文

博文 2017-06-26 15:03:49 r17171709

Android

1、简述Http请求和响应的组成部分 答:户端通过发送HTTP请求向服务器请求对资源的访问。 HTTP请求由三部分组成,分别是:请求行,消息报头,请求正文。 请求行以一个方法符号开头,后面跟着请求URI和协议的版本,以CRLF作为结尾。 请求行以空格分隔。除了作为结尾的CRLF外,不允许出现单独的CR或LF字符 2、简述get和post的区别 答:(1)get是从服务器上获取数据,post是向服务器传送数据。 (1) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。 (2) 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。 ...阅读全文

博文 2017-10-21 21:00:39 cuijaijun1224

Android多媒体之录制PCM以及播放PCM

最近花了一段时间学习了下Android下的音视频方面的知识,简单做了一个可以进行配音混合视频的demo,计划整理记录下,算是一段完整的经验了。 1.使用AudioRecord录制PCM: 首先要初始化AudioRecord: private int SAMPLERATE = 44100; private int channelConfig = AudioFormat.CHANNEL_IN_MONO; private int audioEncoding = AudioFormat.ENCODING_PCM_16BIT; File path = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Media...阅读全文

博文 2017-09-27 16:02:47 wangchenfeng

kotlin和java对比

Kotlin是功能非常强大的编程语言,在java以及多种语言的基础上,去掉了冗余代码,方便开发者用较少的模板编写更多的代码。尤其是在Android开发中。除了编程语言自身和它的类之外,Kotlin还为已有的Java类提供一组好用的扩展。这个例子是请求API和下载结果的方法,通过对比我们可以更加直观了解kotlin的艺术。 API请求:Java 与 Kotlin对比 使用android studio的kotlin插件,可以很方便的把java代码转换成kotlin代码,通过两种语言进行对比,看看坚持使用Java会错过什么。 下面是java代码: public String url(String apiUrl) { try { URL url = null; url = new URL(apiUr...阅读全文

博文 2017-08-23 11:03:54 工木南ng

TornadoFX编程指南,第3章,组件

译自《Components》 组件 JavaFX使用戏剧类比来组织一个包含Stage和Scene组件的Application。 TornadoFX通过提供View,Controller和Fragment组件也构建在此类比基础之上。 虽然TornadoFX也使用Stage和Scene,但View,Controller和Fragment引入了可以简化开发的新概念。 这些组件多数被自动维护为单例(singletons),并且可以通过简单的依赖注入(dependency injections)和其他方式相互通信。 您还可以选择使用FXML,稍后会讨论。 但首先,让我们继承App来创建用于启动TornadoFX应用程序的入口点。 App和View的基础知识 要创建TornadoFX应用程序,您必须至少...阅读全文

博文 2017-08-06 18:03:45 公子小水

Kotlin极简教程:第9章 轻量级线程:协程

文链接:https://github.com/EasyKotlin 在常用的并发模型中,多进程、多线程、分布式是最普遍的,不过近些年来逐渐有一些语言以first-class或者library的形式提供对基于协程的并发模型的支持。其中比较典型的有Scheme、Lua、Python、Perl、Go等以first-class的方式提供对协程的支持。 同样地,Kotlin也支持协程。 本章我们主要介绍: 什么是协程 协程的用法实例 挂起函数 通道与管道 协程的实现原理 coroutine库等 9.1 协程简介 从硬件发展来看,从最初的单核单CPU,到单核多CPU,多核多CPU,似乎已经到了极限了,但是单核CPU性能却还在不断提升。如果将程序分为IO密集型应用和CPU密集型应用,二者的发展历程大致如下...阅读全文

博文 2017-09-23 13:03:46 JackChan1999

Android之Handler用法总结

方法一:(java习惯,在android平台开发时这样是不行的,因为它违背了单线程模型) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread( new Runnable() { public void run() { myView.invalidate(); } }).start(); 可以实现功能,刷新UI界面。但是这样是不行的,因为它违背了单线程模型:Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。 方法二:(Thread+Handler) 查阅了文档和apidemo后,发觉常用的方法是利用Handler来实现UI线程的更新的。 Handler来根据接收的消息,处理UI更新。Thread线程发出Hand...阅读全文

博文 2017-08-09 15:02:45 猪菜

android thread Runnable

文链接: http://blog.csdn.net/boyupeng/article/details/6208072 这篇文章中有三点需要提前说明一下, 一: 在android中有两种实现线程thread的方法: 一种是,扩展java.lang.Thread类 另一种是,实现Runnable接口 二:Thread类代表线程类,它的两个最主要的方法是: run()——包含线程运行时所执行的代码 Start()——用于启动线程 三: Handler 机制,它是Runnable和Activity交互的桥梁,在run方法中发送Message,在Handler里,通过不同的Message执行不同的任务。 下面分别给出两种线程的实现方法,其一,扩展java.lang.Thread类,也就是把run()方...阅读全文

博文 2017-12-03 23:00:33 CZM-

Android四大控件之Service

在 Android 四大组件之中,除了 Activity 之外,最常用的就是 Service 了。先来看一下官方对 Service 的介绍 : Service 是一个可以在后台执行需要长时间运行的操作的应用组件,它不提供用户界面。其它组件可以启动一个 Service ,之后即使用户切换到别的应用里,这个Service 也将继续在后台运行。此外,一个组件可以与一个 Service 绑定来与之交互,甚至可以执行 IPC 进程间通信。服务可以在后台执行很多任务,比如处理网络事务,播放音乐,文件读写或者与一个内容提供者交互,等等。 由此可见,Service 的用途还是十分广泛的,我们在开发中经常会用到 Service,所以应该对 Service 有一定的了解。 Service 有一个最容易让人误会的...阅读全文

博文 2017-10-17 22:00:32 weimore

带你全方位使用Anko库-下篇

本文接上篇,继续带大家全方位的熟悉anko库的使用。本文主要介绍的是anko库的另外两个子库,anko-coroutines和anko-sqlite库。 anko-coroutines的使用要想使用该库,必须要对协程(coroutines)的概念有一定的理解。协程对于java来说是个全新概念,但对于其它语言如c#来说,也是个发展相对成熟的一种技术。目前协程的设计还处于实验过程中,未来kotlin版本中它可能会发生一些变化,而且协程包目前位于kotlin.coroutines.experimental包下。本文主要描述的是anko库的使用,所以对于协程的介绍请移步这里: 深入理解 Kotlin Coroutine(一) 深入理解 Kotlin Coroutine(二) anko库对corout...阅读全文

博文 2017-06-07 20:02:10 CysionLiu

android webView 的 webSettings 最全的说明

android webView 的WebSettings说明 史上最全的WebSettings说明 WebSettings webSettings=webView.getSettings(); setAllowContentAccess (boolean allow) 是否允许在WebView中访问内容URL(Content Url),默认允许。内容Url访问允许WebView从安装在系统中的内容提供者载入内容。 setAllowFileAccess (boolean allow) 是否允许访问文件,默认允许。注意,这里只是允许或禁止对文件系统的访问,Assets 和 resources 文件使用file:///android_asset和file:///android_res仍是可访问的。...阅读全文

博文 2017-11-04 17:01:35 xueshanfeihu0

Ant网络请求框架

Ant网络请求框架由来:Ant网络访问框架的由来是因为每次写项目的时候都要引入第三方网络请求库和第三方图片请求库,每一个请求库都有自己的线程池。导致的问题就是线程不容易管理。而且还有就是使用不方便(不是说这些库不好,而是每次都要倒入好几个库麻烦)所以Ant网络请求框架就诞生了。先来效果图效果图框架大概流程图草图大概意思懂就行 框架技术· 框架由kotlin所写请求数据接口· 框架的网络请求支持更换,用户可以根据自己的喜好使用HttpClient进行网络数据获取或者使用HttpUrlConnection都可以,只要实现对外暴露的Convert接口并将数据返回给回调接口即可。Https支持· 用户可以使用默认的忽略证书式的默认DefaultSSLSocketFactory也可以自己去实现插入自己...阅读全文

博文 2017-06-13 19:02:21 waws8

【自用】Kotlin 简单的多个计时器实现,ScheduledExecutorService

scheduleWithFixedDelay(command: Runnable, initialDelay: Long, delay: Long, unit: TimeUnit) 创建并执行一个在给定初始延迟后首次启用的定期操作; 随后,在每一次执行终止和下一次执行开始之间都存在给定的延迟。 如果任务的任一执行遇到异常,就会取消后续执行。 否则,只能通过执行程序的取消或终止方法来终止该任务。 参数: command - 要执行的任务 initialDelay - 首次执行的延迟时间 delay - 循环执行的延迟时间 unit - initialDelay 和 delay 的时间单位 TimeUnit 为时间的单位 TimeUnit.MILLISECONDS //以毫秒为单位 TimeUn...阅读全文

博文 2017-06-09 11:01:30 Kilosnow

android高级面试题汇总

各位大侠,年底跳槽大热即将开启,你想跳到更好的,薪水更高的公司吗?能够详细的回答出以下几个问题,那么你距离高薪就没有距离了。晚上公布答案!!! 1.android 内存泄漏是怎么回事?怎么处理? 答:内存泄漏主要原因是开发者在一些静态变量的引用或者系统服务资源使用完毕后没有及时的释放导致出现内存泄漏。多个内存泄漏还会导致内存溢出。 2.消息处理机制是怎么个处理过程? 答:消息处理机制从字面意思来看,就是Android开发中使用该机制来进行消息的传递。主要运用在UI线程和子线程,子线程和子线程之间的消息传递。其中包含了有三个概念,Handler,Looper,MessageQueue。各自都是什么功能呢,首先MessageQueue是一个消息队列,它是一个链表的结构,遵循着先进先出的原则,An...阅读全文

博文 2018-03-26 20:01:31 ruizhenggang

kotlin中的不可变设计

可变状态的泛滥往往被认为是软件维护灾难的元凶之一,尤其是当过程封装遇上多线程,普通的面向对象编程技巧完全不堪大用,因为继承/封装/多态等手法针对的都是程序组织上的处理措施,具体到底层实现上,传统的C/C++/JAVA依然采用过程式实现跟操作系统打交道。 函数式编程里的副作用 在函数式编程的世界里,事情会变得很不一样,因为这里非常讲究函数本身是否是有副作用的,如果同样的输入不能保证相同的输出,那么则是有副作用的。这里的输出不仅仅表示返回值,还隐含其它形形色色的对环境的影响,譬如 申请但是没有释放的内存 向操作系统请求占用共享资源如网络套接字 屏幕输出,磁盘占用等 为什么要区分副作用 副作用天然引入了额外的状态,这在多线程编程环境下会带了许多复杂的问题。状态自然意味着有共享资源需要维护,当有并发...阅读全文

博文 2017-06-04 23:02:09 驭风万里无垠

从零开始学android -- Service

废话不多说了,Service是四大组件之一,是一个后台处理长时间运行在主线程不需要依赖ui界面显示的应用组件,切记不能在service中做耗时操作,会阻塞主线程,要做也要在service中开个子线程做耗时操作。 本文的demo会在最后给出,谢谢观看和指正错误。 一、Service的基础学习 开发工具:Android Studio service有两种开启方式 第一种是直接用startService方式 stopService方式关闭 第二种是bindService方式 unbindService方式解除绑定 那么开始第一种的学习: 第一种比较简单,在Activity中开启就行了,好的我们来看看代码 先去注册 阅读全文

博文 2017-09-22 00:00:34 woaixingxing

Android自定义ProgressBar样式

我们使用的进度条多种多样,下面有几种自定义的进度条的样式,下面介绍几个. 进度条的有基本的四种样式: 默认风格的进度条: android:progressBarStyle 水平长型进度条: android:progressBarStyleHorizontal 大圆形进度条: android:progressBarStyleLarge 小圆形进度条: android:progressBarStyleSmall 下面以横向进度样式作为例子,介绍自定义样式. 思路: 1.自定义进度条的样式. 2.设置样式背景,进度条样式,进度条背景. 例如:自定义颜色背景样式