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

Android O Bitmap 内存分配

我们知道,一般认为在Android进程的内存模型中,heap分为两部分,一部分是native heap,一部分是Dalvik heap(实际上也是native heap的一部分)。   Android Bitmap 是一个比较特殊的类,用来加载图片的,而图片的数据部分一般较大,因此在创建Bitmap对象时,Android system 采用的策略是将其分为两个部分,一个是基本信息(如宽度),一个是像素点数据。前者会保存在Dalvik heap中,也就是Bitmap对象所指的空间,后者会单独放一个内存空间里,按照不同的Android系统版本,会放在不同的heap中。   我们先引用一段Android官方的说法:链接 On Android 2.3.3 (API level 10) and low...阅读全文

博文 2017-11-08 00:00:44 xiaji5572

kotlin 一用就爱上

前言: 前晚谷歌大会正式宣布,kotlin正式成为官方开发语言,圈里顿时闹得沸沸扬扬,之前也有去捣鼓一下,就是每次下载插件的时候会失败,然后就没捣鼓,但是谷歌昨天正式宣布了所以得去捣鼓了,刚刚开始的时候下载的时候也会弹出个失败窗口: 直接复制图中的链接到浏览器,就能下载,然后把下载的压缩包离线导入,具体的步骤为settings->plugins->install plugin from disk重启即可. 创建kotlin应用 1.在项目的build.gradle中添加 classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-3' 2.在app的build.gradle添加: apply plugin: 'kotlin-andro...阅读全文

博文 2017-05-23 11:43:04 qq_16782391

kotlin入门之访问数据库的奇淫巧技

如何在业务层最便捷的调用dao层来实现数据的增删改查呢如果我说插入一条记录只要写+ fund你信吗? 那么如此魔幻的代码是如何实现的呢?好奇的话就且听我慢慢道来吧~~~首先前提是,我们要在dao层定义好访问数据库的通用接口并实现一个通用的dao层类,这里面的所有方法都要求是泛型方法下面是我自己封装的一个简单的通用dao open class BaseDBAccessorImpl: IBaseDBAccessor{ //dao层使用了hirbernate,但是没有使用ioc框架,需要直接获取session //SessionFac是我自己封装的一个工具类,里面有个counter计数器对同个线程的getSession和close调用进行计数,第一次get开启事务,最后一次close关...阅读全文

博文 2017-05-27 15:24:55 咖啡加方糖

《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的集合常用函数式操作(Lambdas)

本文章可能只适合会Kotlin的童鞋 , 要是还不会的也打算去学习的, 可以前往官网学习 最近Google爸爸把Kotlin宣布作为Android一级开发语言后,着实让Kotlin这门语言火了一把, 目前Android Studio3.0已经全面支持Kotlin了 由于公司只有我一个Android开发, 所以就直接就拿来上手了写项目了 使用了几个月后, 发现这语言真的是非常好用, 跟Java对比最大的优势就是代码简洁了不知道多少, 相同的代码Kotlin能比Java少50%或者更多的代码, 空指针异常出现的几率也大大的减少了 也统计了很多集合的Lambdas常用操作 先定义几个List集合和初始的几条数据, 便于后面使用 如果看不懂的, 可以先学习下`Kotlin的使用 val string...阅读全文

博文 2017-08-29 13:03:59 coexist

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广播机制

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中的延迟属性(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

kotlin编写java static main函数 @JvmStatic

class Test { companion object { @JvmStatic fun main(args: Array) { println("hello") } } }//////////////////////// package com.github.testkotlin;public class Main { public static void main(String[] args) { System.out.println("hello"); }}////////////////////////////// package com.github.testkotlinobject Main { @JvmStatic fun main(args: Array<...阅读全文

博文 2017-06-10 08:00:01 feicheninfo

[Kotlin]kotlin.NotImplementedError: An operation is not implemented: not implemented

前言:所谓万事开头难,在使用新语言开发的时候,总是会遇到一些Bug,然而很头疼的是,Kotlin在国内还没有这么快普及,当出现Bug的时候,就算想Google一下,参考资料也是比较少的,所以为了后来者以后的便利,决定将自己在使用Kotlin开发时,遇到的Bug,原原本本记录下来,以及一个解决方案。 在使用RecyclerView.Adapter的时候出现第一个Bug - - kotlin.NotImplementedError: An operation is not implemented: not implemented 06-21 15:01:54.197 3104 3104 D AndroidRuntime: Shutting down VM 06-21 15:01:54.197 1...阅读全文

博文 2017-06-21 16:03:50 黄宏发

Kotlin之 TODO,also,apply,run,with,let,takeIf,takeUnless高阶函数区别

1. TODO 方法使用: fun test(){ TODO("请关注我。") } 方法说明:类似于java的//todo,不同的是,它会抛出一个异常,也就是这个方法会导致程序崩溃。 它的好处是:配合IDE自动声明的TODO, 会强制开发者去实现这个TODO或者删除它。 2.also textView?.also { it.text = "" it.textSize = 16f it.setTextColor(Color.WHITE) }?.visibility = View.VISIBLE 方法说明:函数块范围内,可以通过 it 指代该对象,任意调用该对象的方法,返回值为该对象自己 3. apply textView.apply{ this.textSize = 13f this.text...阅读全文

博文 2017-07-12 17:02:21 秀宇

Kotlin之let、apply、with、run的使用及对比

1)let--默认当前这个对象作为闭包的it参数,返回值是函数里面最后一行,或者指定return--eg.--输出字为 str 和 Log的返回值str.let { Log.i("----", "$it") }.let { Log.i("----", "$it") }2)apply--调用某对象的apply函数,在函数范围内,可以任意调用该对象的任意方法,并返回该对象--eg.--返回为applytv?.apply { text = "apply" }.let { Log.i("----", "${it?.text}")}3)with--返回是最后一行,可以直接调用对象的方法 类似于 apply和let的结合--eg.--返回为true with(ArrayList()) {add("wit...阅读全文

博文 2017-06-21 11:03:55 半截铅笔

Kotlin——这次入门就不用放弃了

写在文前 本文将展示在Android中会遇到的实际问题,并且使用Kotlin怎么去解决它们。一些Android开发者在处理异步、数据库或者处理Activity中非常冗长的listener时发现了很多的问题。通过一个个真实的场景,我们一边解决问题一边学习Kotlin的特性。 快速上手 如果不知道如何在Kotlin中写一个相当简单的Java表达式。这里有一个简单的诀窍,就是在AndroidStudio的Java文件中编写一段代码,然后将其粘贴到kt文件中,它会自动转换为Kotlin。 Kotlin优势 它更加易表现:这是它最重要的优点之一。你可以编写少得多的代码。 它更加安全:Kotlin是空安全的,也就是说在我们编译时期就处理了各种null的情况,避免了执行时异常。你可以节约很多调试空指针异常...阅读全文

博文 2017-06-11 22:02:10 江湖感觉乱

为什么不使用 RxLifecycle?

本文为翻译文章,原文连接:为什么不使用RxLifecycleWhy Not RxLifecycle? Hello. This is Dan Lew. You may or may not know me as the author of RxLifecycle.hello,我是Dan Lew,你可能还不知道我就是RxLifecycle.的作者。OriginsWhen Trello first started using RxJava, we were dismayed with how easy it was to leak memory when using it. Seemingly any Subscription you setup would leak unless you exp...阅读全文

博文 2017-09-15 15:03:50 woitaylor

TornadoFX编程指南,第7章,布局和菜单

译自《Layouts and Menus》 布局和菜单 复杂的UI需要很多控件。 这些控件可能需要使用设置策略(set policies),进行分组,定位并调整大小。 幸运的是,TornadoFX简化了JavaFX自带的许多布局(layouts),并且具有自己的专有Form布局。 TornadoFX还具有类型安全的构建器(type-safe builders),以高度结构化,声明性的方式创建菜单。 使用常规JavaFX代码构建菜单尤其繁琐,而Kotlin在这个部分真的很出色。 布局构建器(Builders for Layouts) 布局(Layouts)将控制分组,并设置有关其大小和定位行为的策略(policies)。 在技​​术上,布局(layouts)本身就是控件,因此您可以在布局中嵌套...阅读全文

博文 2017-08-16 02:03:54 公子小水

Kotlin学习笔记(四十六)高阶函数fold

/** * 常见高阶函数 * fold函数:累加函数,与reduce方法类似,不过可以设置初始值, * 如果初始值可以是StringBuilder,可用来拼接字符串, * 参数acc的类型与初始值一致 */ fun factorial2(n: Int): Int { //求阶乘 if (n == 0) return 1 return (1..n).reduce { acc, i -> acc * i } } fun main(args: Array) { println("打印0到6的阶乘") (0..6).map(::factorial2).forEach(::println) //分别求0到6的阶乘再遍历打印 val list = listOf(1,2,3,4) prin...阅读全文

博文 2017-07-16 14:03:46 lkmc2

Android相机开发和遇到的坑

载请标明出处:http://blog.csdn.net/xx326664162/article/details/53350551 文章出自:薛瑄的博客 在Android相机开发实际开发过程中遇到了不少问题,在网上找了这些资料,但是感觉如果没有经历过Android相机开发开发,直接看这些还是有点太抽象,建议参考一些代码来学习下面的内容 由于之前没有接触过Android相机开发,所以在整个开发过程中踩了不少坑,费了不少时间和精力。这篇文章总结了Android相机开发的相关知识、流程,以及容易遇到的坑,希望能帮助今后可能会接触Android相机开发的朋友快速上手,节省时间,少走弯路。 一.Android中开发相机应用的两种方式 Android系统提供了两种使用手机相机资源实现拍摄功能的方法, 一种...阅读全文

博文 2017-11-09 19:01:48 xx326664162

Android 拦截返回键

KeyEvent类 Android.View.KeyEvent类中定义了一系列的常量和方法,用来描述android中的按键事件。 和返回键有关的常量和方法有。 KeyEvent.KEYCODE_BACK: 表示key类型为返回键 KeyEvent.ACTION_DOWN:表示事件为按下key,如果一直按住不放,则会不停产生此事件。 KeyEvent.ACTION_UP:表示事件为为放开key,一次点击key过程只会调用一次。 public final int getKeyCode():获取此事件对应的key类型。 public final int getAction():获取此事件对应的事件类型 Activity中拦截返回键 在Activity的派生类中可以通过重写onKeyDown和onK...阅读全文

博文 2017-07-03 17:02:59 zb1489663929046

Kotlin-Map和flatMap

map:遍历每一个元素flatMap:遍历每一个元素,并铺平元素var list =listOf(listOf(10,20),listOf(30,40),listOf(50,60))var mapList = list.map{element->element.toString()}var flatMapList = list.flatMap{element->element.asIterable()}flatMap中的函数一定要返回一个Iterable,不然报错结果:[[10, 20], [30, 40], [50, 60]][10, 20, 30, 40, 50, 60...阅读全文

博文 2017-07-28 16:03:43 全汪汪

android调用第三方so库文件

一.Android平台如果要调用一些C/C++语言的所编译生成的库的函数一般要进行一下几个步骤。 1.确保我们的so库是用 ndk 或者 arm-linux-androideabi-gcc编译而成,如何编译参考上一篇文章。 2.如果我们的安卓应用程序是在studio中开发用java所写,那么我们 需要配置以下内容: a: 去Android官网下载NDK并配置到我们的studio中,gradle.properties文件中加上一句: android.useDeprecatedNdk=true //不加有可能导致编译不成功 b: 因为我们是用java调用c/c++,需要我们需要使用jni,创建一个类并实现Jni规范中本地方法 public class NdkTest { static { Sys...阅读全文

博文 2017-12-04 23:01:44 qq_33531666

Kotlin中,函数作为参数,T.()->Unit 和 ()->Unit 的区别

在做kotlin开发中,经常看到一些系统函数里,用函数作为参数,但是又和我们自己写的不太一样 大概是这样子的: public inline fun T.apply(block: T.() -> Unit): T { block() return this } 一开始的时候,我很疑惑,我们平时定义的是这样子的啊: fun T.hahaha(f: () -> Unit) { } 我们这里注意一下,其实我们的区别,就是系统的是T.()-Unit,而我们定义的是()->Unit 这里就很疑惑了,为什么?T不是一个类吗?怎么可以直接 T.() 这是什么意思?? 我们这里来看一下文档是怎么说的, 我们这里看一下画原谅色线的部分,原来这里作用就是可以this代表的对象的不同。...阅读全文

博文 2017-10-17 22:02:19 xiaolei123

Kotlin函数之递归、尾递归

1、递归例子: 1.1 求斐波那契数列 斐波那契数列 1 1 2 3 5 8 13 21 34 55 ... n 需求:求第n个斐波那契数列 fun feibo(n: Int): Int { if (n == 1 || n == 2) return 1 return feibo(n - 1) + feibo(n - 2) } 1.2 求 1+2+3+...+n的和 fun sum(n: Int): Int { if (n == 1) return 1 return n + sum(n - 1) } 2、尾递归 迭代方式 来求 1+2+3+4+... + n的和 fun sum2(n: Int): Int { var copyN = n var result = 0 while (copyN ...阅读全文

博文 2018-01-03 17:02:09 Agnes2017

Android关于AutoService、Javapoet讲解

一、上篇文章提到自定义processor中用到AutoService 文章中我们用到了AutoService, 使用@AutoService(Processor.class),编译后 AutoService会自动在META-INF文件夹下生成Processor配置信息文件,该文件里就是实现该服务接口的具体实现类。而当外部程序装配这个模块的时候,就能通过该jar包META-INF/services/里的配置文件找到具体的实现类名,并装载实例化,完成模块的注入。基于这样一个约定就能很好的找到服务接口的实现类,而不需要再代码里制定,方便快捷。应用依赖如下: compile 'com.google.auto.service:auto-service:1.0-rc2' 二、javapoet常用api ...阅读全文

博文 2017-12-21 17:00:34 limingblogs

Kotlin学习笔记(二)集合

本来这节不应该放这里的,因为在公司做一个小项目练手的时候碰到了些坑,使用了一个List,结果怎么也找不到添加item的方法,就先恶补了一下。 首先Kotlin中的集合具有可变性和不可变性的区别,来看一下Kotlin中的相关接口: Iterable MutableIterable Collection MutableCollection List MutableList Set MutableSet Map MutableMap 首先说明一下,这个表格并不代表继承关系,只是区分可变不可变。继承关系如下图,原谅我画的比较丑: Kotlin集合继承关系.jpg Iterable:父类。所有可以遍历的集合都是实现这个接口。只声明了iterator()一个方法,返回一个Iterator。 Mutabl...阅读全文

博文 2017-06-09 18:02:03 风少侠

【DOC】Kotlin 数组 Array

数组在 Kotlin 中使⽤ Array 类来表⽰,它定义了 get 和 set 函数(按照运算符重载约定这会转变为 [])和 size 属性,以及⼀些其他有⽤的成员函数: class Array private constructor() { val size: Int operator fun get(index: Int): T operator fun set(index: Int, value: T): Unit operator fun iterator(): Iterator // …… } 我们可以使⽤库函数 arrayOf() 来创建⼀个数组并传递元素值给它,这样 arrayOf(1, 2, 3) 创建了 array [1, 2, 3]。 或者,库函数array...阅读全文

博文 2017-05-30 13:01:06 Kilosnow

Kotlin 型变 + 星号投影(扯蛋)

Kotlin中的型变: 1. in,顾名思义,就是只能作为传入参数的参数类型 2.out, ..............,就是只能作为返回类型参数的参数类型 星号投影: 我们引用官网的吧-- For Foo, where T is a covariant type parameter with the upper bound TUpper, Foo<*> is equivalent to Foo. It means that when the T is unknown you can safely read values of TUpper from Foo<*>. 就是说返回参数类型可以不具体指定,用*号来引用上界即可,也就是我们用Any类型就行,它的...阅读全文

博文 2017-10-20 21:00:00 woodzcl

android Studio开发最简单apk,在app内打开指定网页

最近的客户需要在原来的桌面版的基础上增加一个app版,我在用html5开发好以后,需要将其装在安卓的app中,整个app,只是打开网页,可以在里面进行操作。现记录一下整个过程,以备以后查阅。 在android Studio中新建一个工程,设置好 Application name和Company domain后,next; phone and tablet中选择一个适合的就行,我选择默认的 API15:Android4.0.3;next; 在选择类型的时候选择 empty Activity; next; finish。至此工程文件建立好。 下面就会是工程的界面。我们需要更改几个文件。 修改MainActivity类,在onCreate函数中加入以下代码: @Override protected...阅读全文

博文 2018-05-22 12:02:37 阿托1972

揭露Kotlin 包级函数的真面目

看一断诡异的代码 class Age { operator fun invoke(offset:Int): Int { return 9 + offset } } fun main(args: Array) { var age = Age() //实例化一个对象 var value = age(2) //把对象当初函数直接用了,好奇怪哦 println(value) } 上面代码之后把一个对象当成函数运行了,细心的同学应该看到了Age 类唯一的方法前面多了一个关键字 operator,这个是一个定义操作符的关键字,这里只讲解定义函数操作符的方式: 使用operator 修饰函数 函数名必须为invoke 函数必须为成员函数,就是类或者接口的函数 总结 1. () 是函数操作符...阅读全文

博文 2017-06-02 19:02:17 小蜗牛流泪

kotlin 之 接口回调

有如下常用情景,在某个Adapter我们设置自己的接口回调,将原来的java代码改写之后大概会是这个样子: class SomeListAdapter(){ var mOnItemClickListener:OnItemClickListener? = null fun setOnItemClickListener(onItemClickListener : OnItemClickListener){ mOnItemClickListener = onItemClickListener } override fun onBindViewHolder(holder: RecyclerView.ViewHolder?, position: Int) { mOnItemClickListener?...阅读全文

博文 2017-11-02 12:02:13 街角的小丑

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跨平台编译 —— libevent

此文大量引用参考 https://www.dplord.com/2017/10/10/android-ndk-compile-libevent/ 前言 前言都在 Android跨平台编译 —— BOOST PS:有一些基础知识介绍,还是挺重要的。 准备工作 编译环境 mac os x ndk版本 ndk 16rb libevent版本 2.1.8 编译工具 cmake 假设我们已经在android studio上安装了ndk和cmake。 首先需要下载libevent ,这里有个问题,如果直接从官网上下载tar包,解压之后是没有CMakeLists.txt文件的,所以无法使用cmake进行编译。所以我们需要从github上直接下载,地址https://github.com/libevent/...阅读全文

博文 2018-02-24 18:02:43 街角的小丑

kotlin之object

kotlin中,声明一个单例的语法很简单: object obj 我们使用object关键字替代class关键字就可以声明一个单例对象,这在java中是不可想象的。object一样可以继承其他类,或者实现其他方法: interface IObj abstract class AbstractObj object obj : AbstractObj(),IObj 在这里,我们让obj这个单例继承了AbstractObj,并且实现了IObj接口声明一个单例对象,和声明一个class很类似但是,object声明的单例对象不能声明构造函数,因为单例对象只有一个实例,无需我们手动将它创建出来,因此自然不需要构造函数。 如果需要对单例对象做初始化操作,可以在init初始化块内进行 那么object是什么...阅读全文

博文 2017-06-10 02:02:06 咖啡加方糖

Android 使用Kotlin的一些技巧

打印LogLog.d(TAG , "print i = $i , j = $j , len = ${str.length} ") 设置 listenersmyButton.setOnClickListener { navigateToDetail() } for 语句中的范围在Java 中 :for (int i = 1; i <= 10 ; i++) { } for (int i = 1; i < 10 ; i++) { } for (int i = 10; i >= 0 ; i--) { } for (int i = 1; i <= 10 ; i+=2) { } for (int i = 10; i >= 0 ; i-=2) { } for (String item : collecti...阅读全文

博文 2017-06-18 01:02:18 兰兰笑笑生

React Native Android原生模块使用(获取Android手机通讯录的数据)

使用React Native开发App时会遇到需要用到一些Android原生模块,比如:访问相册、通讯录、日历等等。下面主要是以获取Android手机通讯录的数据为例,讲解React Native Android原生模块的使用。 注:数据格式可自行做修改。 React Native Android原生模块的主要流程 在这里我将构建React Native Android原生模块的流程划分为两大步: 1.编写Android原生模块的相关Java代码; 2.注册与导出React Native原生模块 编写Android原生模块的相关Java代码 我们需要用到Android Studio。 首先我们用Android Studio打开React Native项目根目录下的android目录。项目初始...阅读全文

博文 2017-06-19 19:02:54 djonce

Kotlin 50行代码实现清除Android项目中不用的图片和资源

前言 Google 在I/O大会上宣布了官方支持kotlin作为android的开发语言。因此kotlin一下子进入了android开发同学们的实现,其实我很早就知道这门语言,也看了别人使用这门语言做android开发,但是由于懒,从来也没有看过。正好借此机会,大家都在趁热乎劲学习,我也翻开了官方文档看了看,因为我学习一门语言的方法就是简单浏览一下语法,然后直接开始写一个简单的程序,这样子在实现想要的功能的同时也就简单熟悉了一些常用的语法,于是就有了第一个练习的程序,也就有了这个分享。 Kotlin优点 Kotlin 的语法优点还是很多的。跟scala其实挺像的。如果写过scala,写这个会觉得挺顺手的。 集合链式调用,像rxjava一样,有很多的操作符,写起来很舒服,语法糖比较多,看起来逻...阅读全文

博文 2017-05-27 17:02:11 Kingty

Android休眠唤醒机制

有四种方式可以引起休眠 ①在wake_unlock()中, 如果发现解锁以后没有任何其他的wake lock了, 就开始休眠 ②在定时器到时间以后, 定时器的回调函数会查看是否有其他的wake lock, 如果没有, 就在这里让系统进入睡眠 ③在wake_lock() 中, 对一个wake lock加锁以后, 会再次检查一下有没有锁, 刚加上锁,为什么要检查,有用吗? ④按power键,调用earlysuspend.使系统或应用程序释放锁.从而调用上述三个函数进入休眠 earlysuspend、autosleep以及wakeup_count三种休眠机制的分析和比较 1) android 面临的问题 Opportunistic sleep: 当没有任务时,需要寻找时机,进入suspended ...阅读全文

博文 2017-12-21 17:00:31 yejintianming00

Kotlin for Vue.js

Kotlin介绍 基于 JVM 的编程语言 Kotlin Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains开发。 其主要设计目标:创建一种兼容 Java 的语言 让它比 Java 更安全,能够静态检测常见的陷阱。如:引用空指针 让它比 Java 更简洁,通过支持 variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation 等实现。 让它比最成熟的竞争对手 Scala 语言更加简单。 What does it look like? Kotlin for JavaScript Kotlin1.1版本正式加入了对...阅读全文

博文 2017-06-03 03:02:05 Zyao89

Kotlin学习(三)——运算符

以下是完整的位运算符(只用语Int和Long) 1.shl(bits):有符号左移 (Java 的 <<) 2.shr(bits):有符号右移 (Java 的 >>) 3.ushr(bits):无符号右移 (Java 的 >>>) 4.and(bits):位与 5.or(bits):位或 6.xor(bits):位异或 7.inv():位非 一、一元操作 一元前缀操作符 一元前缀操作符 当编译器处理例如表达式 +a 时,它执行以下步骤:确定 a 的类型,令其为 T。为接收者 T 查找一个带有 operator 修饰符的无参函数 unaryPlus(),即成员函数或扩展函数。如果函数不存在或不明确,则导致编译错误。如果函数存在且其返回类型为 R,那就表达式 +a 具有类型 R。注意 这些操作以...阅读全文

博文 2017-05-28 23:02:08 _陈小平

使用kotlin开发spring boot应用

1. Kotlin的优势 Kotlin是一种静态类型的语言,但由于其巧妙的类型推断,它允许你编写的代码与动态语言一样简短而富有表现力,表现接近于纯Java项目 属性(properties)支持 与其他语言相比拥有相对轻巧的标准库 易于学习:Java开发人员可以快速了解大部分语言 可与Java互操作 适合Android开发(已成为谷歌安卓官方指定开发语言) 内置的不可变性和空指针安全的支持 代码易于阅读,高效编写 允许扩展现有库,而不必继承类或使用任何类型的设计模式,如Decorator 句尾不需要分号; 在 Kotlin disget 2015 的博客里可以找到大量有用的信息帮助你认识Kotlin,也可以在 kotlin在线 练习Kotlin语言。 2. 初窥Spring Boot + Ko...阅读全文

博文 2017-06-14 14:02:14 Blurooo

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

ffmpeg支持android硬件解码mediacodec

1)编译配置 ./configure --enable-cross-compile --cross-prefix=/e/arm-linux-androideabi-4.6/bin/arm-linux-ardroideabi- --sysroot=/e/android/android-ndk-r8b/platforms/android- 14/arch-arm --extra-cflags="/e/android/android-ndk-r8b/platforms/android-14/arch-arm/usr/include" --target-os=android --arch=arm --enable-jni --enable-mediacodec --enable- bsf=h264_...阅读全文

博文 2017-12-05 13:01:45 ljh081231

1. kotlin 闭包简单例子

闭包 任何支持函数式编程的语言都都支持闭包 闭包的作用 让函数成为编程语言中的一等公民 让函数具有对象所有的能力(封装) 让函数具有状态 很明显的是java不支持闭包 kotlin的闭包(每个java程序员都想要的语言特性) 为什么需要函数成为一等公民 all men are created equal java中对象是一等公民,对象有状态 函数是没有状态的,调用完毕后,里面的数据会被回收,不会被保存 java代码 public class Test { public void test(){ public void test(){ } } } 方法里面 放方法。报错,java没办法理解这种代码,在java中 函数是二等公民 二等公民是不可以出现在函数里面的。他只能出现在类的定义里 kotl...阅读全文

博文 2018-02-23 19:03:41 oneboi

Kotlin:将函数作为参数传递

Kotlin是一门与Swift类似的静态类型JVM语言,由JetBrains设计开发并开源。与Java相比,Kotlin的语法更简洁、更具表达性,而且提供了更多的特性,比如,高阶函数、操作符重载、字符串模板。它与Java高度可互操作,可以同时用在一个项目中。InfoQ高阶函数就是可以接受函数作为参数并返回一个函数的函数。Kotlin-in-Chinese Kotlin 支持函数作为参数传递,无需构建对象来包装函数。 无参数函数调用 class Hello { fun say() { Timber.i("Hello World") } /** * 在 Kotlin 中无返回为 Unit * * 此方法接收一个无参数的函数并且无返回 * * 使用参数名加 () 来调用 */ fun people...阅读全文

博文 2017-05-27 15:21:15 Junzz丶

Kotlin——最详细的枚举类(Enum)详解

在上一章节中,详细的类(class)做了一个实例讲解,提到了类(class)的实例化、构造函数、声明、实现方式、和Java中类的区别等。但是对于Kotlin中的类的使用还远远不止那些。并且在上文中提到了关于类的类别。故而这篇文章就详细说一说Kotlin中的枚举类、的使用。 如果还对Kotlin`中的类还没有一个清晰的概念及认识的朋友请阅读我的上一篇博文: Kotlin从无到有系列之类(calss)的使用 目录 一、声明方式及枚举常量 关键字:enum 枚举常量:即枚举类下的对象,每个枚举类包含0个到多个枚举常量。 1、声明 enum关键字在类头中的class关键字前面 声明格式: enum class 类名{ ... } 2、枚举常量 枚举类中的每一个枚举常量都是一个对象,并且他们之间用逗号...阅读全文

博文 2017-11-01 23:00:01 Jetictors

在Android上运用Anko和Kotlin开发数据库:SQLite从来不是一件轻松的事(KAD25)

作者:Antonio Leiva 时间:Mar 30, 2017 原文链接:https://antonioleiva.com/databases-anko-kotlin/ 事实告诉我们:在Android中编写数据库是相当无聊的。 使用SQLite时,所需的所有模板在当今世界上都不是一件最令人愉快的事情。 所幸的是,在最新一次Google I / O会议上,它们宣布的其中一项事项(称其为:Room),就是为简化这项工作,开发出足够的库。 然而,运用Anko,我们仍可以继续像使用低级别框架一样工作,但是摆脱了实施过程中一些繁琐的部分。今天我们来看看究竟是怎么样做到的。 运用Anko创建你的数据库 这里你将看到如何从头开始创建数据库。在Android上,你需要SQLiteOpenHelper,来检...阅读全文

博文 2017-06-10 08:00:01 figozhg

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

kotlin的伴生库-anko迭代了已经多个版本了,但是目前网上的资源主要集中在官方说明的机械翻译或者旧博客的复制/粘贴上。 本文带大家全方位的熟悉anko库的使用。anko库目前主要有四个核心库 anko-commons库,一些通用功能,集成方式:dependencies { //anko_version脚本配置,下同,本文中,该值为0.10.0 compile "org.jetbrains.anko:anko-commons:$anko_version" } anko-layout库,牛逼的dsl(领域特定语言)功能,布局的另一种代码方式,相对比较简洁,xml的简易替代。集成方式: dependencies { // Anko Layouts compile "org.jetbrains...阅读全文

博文 2017-06-04 00:24:47 CysionLiu

在kotlin中使用room(Room Persistence Library)和遇到的坑

有关room介绍请看这里 下面进入正题,如何在kotlin中使用room;大致与java还是一样的,但是会有几处坑会在文中说道;在文尾会总结 1.创建Entity @Entity(tableName = "story") @TypeConverters(Converters::class) data class StoryEntity constructor( @PrimaryKey @SerializedName("id") var id: Int) { constructor() : this(0) @ColumnInfo(name = "images") @SerializedName("images") var images: Array? = null @Colum...阅读全文

博文 2017-07-01 11:03:52 JokAr_

Kotlin编程开发Android运用程序(Volley+Gson依赖库)

在2017年Google IO大会中,宣布Kotlin 作为官方语言。跟着党走总没错的想法,开始满怀激情的开始Kotlin之旅。 历经一个下午的探索Kotlin编程后。昨晚按耐不住激动心情,边摸石头边过河的方式,花了一个晚上时间,撸了本项目代码。过完一段时间的后,Kotlin理解提高了,再回头看下本项目,肯定是左右嫌弃的,但是这毕竟是本人的第一个Kotlin项目。 1. AndroidStudio支持Kotlin的配置: 若是使用的AndroidStudio3.0以下,是默认不支持Kotlin语言的,需要自行配置。 Androistudio 3.0以上是自带支持Kotlin。 具体配置与使用,可以参考上篇讲解的文章, Kotlin编程之AndroidStudio(包括3.0与2.x版本)配置...阅读全文

博文 2017-05-22 18:02:26 hexingen

Kotlin语法基础,运算符

运算符 计算机程序中最小的程序单位成为表达式,每个表达式都可以由两部分组成,即操作数和运算符。操作数可以是变量、常量、类、数组、方法等,甚至是其他表达式。而运算符则用于支出表达式中单个或者多个操作数参与运算的规则,表达式通过运算之后产生的值依赖于表达式中包含的运算符的优先级和结核性。Kotlin语言包含了Java语言中的所有运算符的特性,并结合C语言的优点,增加自定义运算符的逻辑。这些运算符之中,主要包括有:算数运算符、区间运算符、逻辑运算符、关系运算符、赋值运算符、自增自减运算符等。 根据操作数的数量来划分,运算符又可以分为一目运算符、双目运算符。 - 一目运算符用于单一操作对象,又称单目运算符,如:++a、!b、i–等。 - 双目运算符是中置的,它拥有两个操作数,比如:a+3、a*b K...阅读全文

博文 2017-06-16 10:00:41 yzzst