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

Android Gradle高级用法,动态编译技术:Plugin Transform Javassist操作Class文件

动态编译技术在开源框架中的应用非常的广泛,现在市面上的插件化框架,热修复框架几乎都使用了动态编译技术,原理几乎都是在编译期间动态的在class文件中注入代码或者或修改。那就让我们来了解一下这高大上的技术吧。 本章会以完成一个demo的形式来揭开动态编译的神秘面纱,将会分成三步 一、自定义Gradle插件 二、介绍Transform API 及 实现步骤 三、实现在编译的过程中操作.class文件,对原有代码或者说逻辑进 行一些处理,修改原class代码和动态生成java类 一、自定义gradle插件:在我们app下的build.gradle中的第一行是apply plugin: ‘com.android.application’ ,其实这就是一个插件,是google写好的插件,我们自己写插一...阅读全文

博文 2017-09-18 10:02:48 微笑的江豚

【Android Kotlin常见错误一】Unresolved reference kotlinx

问题 在Android Kotlin中,我们可以通过如下方法,非常方便的操作layout中的任意控件: import kotlinx.android.synthetic.main.activity_main.*; class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) btn_setting.text = "hello Kotlin" initView() } } 可是,当你运行时,Android Studio可...阅读全文

博文 2017-05-27 15:10:10 divin

Android基础-Fragment的使用

初学Android时,我们都知道Activity,也知道Activity是怎么使用的。Activity的含义就是活动,一个界面,简而言之,放在App应用上来说,一个Activity就相当于是App中的一个界面。 但是今天我们学的是Fragment,可能初学Android的,可能不知道Fragment是什么,但是不急,我们在这里会详细的讲解。 1.Fragment是什么? Fragment翻译过来就是碎片,片段,其实它是一种可以嵌入活动(Activity)的UI片段,它能让程序使用屏幕资源,使得一个屏幕充分的展现内容。Fragment是从Android 3.0(API 11)加入的,主要是为了给大屏幕(如平板电脑)上更加动态和灵活的 UI 设计提供支持。由于平板电脑的屏幕比手机屏幕大得多,因此...阅读全文

博文 2017-10-26 00:00:46 Stay-Hungry-Stay-Foolish

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

android 代码转换成Kotlin代码时,变量报Property must be initialized or be abstract错误

一般的activity是这样的,定义个输入框变量 通过 Code→Convert Java File to Kotlin File 或者快捷键 Ctrl+Alt+Shift+K将Java代码转换成Kotlin代码 Java代码成功转换成了Kotlin代码,但定义的输入框变量却报错了。查看错误信息是 Property must be initialized or be abstract。 也就是说Kotlin中定义的变量,要么是定义时就初始化,要么就定义成抽象的。但显然这里不能定义成抽象的,那就试着直接初始化。 初始化后,果然不再报错。那就直接运行,却发现App直接停止运行了。查看错误日志, Caused by: java.lang.NullPointerException: Attempt ...阅读全文

博文 2017-06-09 10:01:25 粉红薯

让你的代码量减少3倍!使用kotlin开发Android(一)

让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客:wing的地方酒馆 写在前面 使用kotlin开发android已经两周多了。得到的好处太多,敲代码简直是爽的飞起。kotlin简单,易用,代码量少。这么爽的东西,不敢私藏,所以写出来与大家分享。 可能标题说减少3倍你不信,但事实上并不夸张。通过学习本系列文章,你会发现,代码。真的少了很多。 本系列文章将会使用kotlin从无到有撸一个android小应用程序(不是微信小程序= =!),而并非传统的学习语言方式(如:《21天精通kotlin》、《kotlin从入门到精通》)。在创作的过程中学习语法,我认为单纯的学语法没什么意义,学了也会忘。因为本身不是为了学而学,而是为了用而学。用...阅读全文

博文 2017-05-22 18:39:52 wingichoy

Kotlin 中 Json 一键生成 Data Class

在用 Java 写 Android 的时候,Android Studio 的 GsonFormat 几乎是必备的插件。最不习惯的一点就是 Json 转成 Data 类变得比较麻烦。其实还是可以用 GsonFormat 的: 先创建一个 Java 类 使用 GsonFormat 从 Json 转换 用 Android Studio 将 Java 类转成 Kotlin 类 但这种方法转换成的 Class 并不是 Data Class,而是普通的 Class。普通的 Kotlin Class 代码量会更多,就失去了 Kotlin 本身的优势。 好在有了这个插件:https://github.com/enbandari/NewDataClassActio...阅读全文

博文 2017-07-27 12:03:45 Obadiah

电子书 Kotlin for android developers.pdf 免费下载 中文版

在这本书中,我会使用Kotlin作为主要的语言来开发一个android应用。方式是通过开发一个应用来学习这门语言,而不是根据传统的结构来学习。我会在感兴趣的点停下来通过与Java1.7对比的方式讲讲Kotlin的一些概念和特性。用这种方法你就能知道它们的不同之处,并且知道哪部分语言特性可以让你提高你的工作效率。这本书并不是一本语言参考书,但它是一个Android开发者去学习Kotlin并且使用在自己项目中的一个工具。我会通过使用一些语言特性和有趣的工具和库来解决很多我们在日常生活当中都会遇到的典型问题。这本书是非常具有实践性的,所以我建议你在电脑面前跟着我的例子和代码实践。无论何时你都可以在有一些想法的时候深入到实践中去。就如你知道的,这是一个精益出版。也就是说这本书是跟你一起写下去的。我会...阅读全文

博文 2017-05-27 15:19:41 itbook

cannot be provided without an @Inject constructor or from an @Provides- or @Produces-annotated method

在用kotlin和dagger2的时候,用到了Dagger 2 的 @Qualifier来指定对象 class MainActivity : AppCompatActivity (){ @Inject @Named("red") lateinit var cloth:Cloth } @Module class MainModule { @Provides @Named("red") fun getRedCloth() : Cloth{ var cloth = Cloth() cloth.color="红色" return cloth; } @Provides @Named("blue") fun getBlueCloth() : Cloth{ var cloth = Cloth() clot...阅读全文

博文 2017-08-31 18:03:51 泠点汣

Android Studio主题设置、颜色背景配置

color-themes 效果展示 打开http://color-themes.com/有很多样式可供选择 1. Monokai Sublime Text 3(color theme) 2. Solarized Light (color theme) 3. Visual Studio 2015 Dark(color theme) 导入方式 下载主题—xxx.jar 注意:如果我们下载下来的jar名字如果有空格,一定要把空格去掉,同时文件路径中不要含有中文 选择File—>Import Settings—>把刚才下载好的jar包导入 重启Android Studio MaterialDesign AS UI Theme插件 但是上面的修改只是针对可编辑的代码范围内的主题修改,可能和你的侧边栏、...阅读全文

博文 2017-07-18 14:02:58 微笑的江豚

Kotlin之“Date”扩展的一些高频率方法

闲来无事,整理了一些高频率使用Date的方法,用Kotlin整理了一些,大家可以拿去使用使用使用 主要实现了下面几个功能 获取今天是星期几(英文) getToday_Englishname 获取今天是星期几(中文) getToday_Chinaname 获取当前日期 getToday 获取上周的今天的日期 getlastweekToday 获取上个月今天的日期 getlastmonthToday 获取昨天的日期 getDateofYesterday 获取上个月的第一天 getFirstDayOfLastMonth 获取上个月的最后一天 getLastDayOfLastMonth 判断是否是闰年 isLeapYear 字符串日期 获取想要格式的日期格式 getTime4String 判断两个日...阅读全文

博文 2017-10-24 17:04:29 STTXGR

Android——通过Intent,Bundle在activity间进行数据传递

在安卓activity的数据传递中,Intent和bundle都是用的极多的传递参数的工具。本文就讲介绍Intent与Bundle并简述如何进行参数传递。 1.Intent是什么 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。 2.Bundle是什么 Bundle...阅读全文

Android Plugin for Gradle 3.0.0踩坑记录

android studio 终于迎来了3.0正式版本,早上到公司第一件事情就是一声号令,升级! ... 升级完成,重启android studio 编译失败.... Error:(137, 0) Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=IAskDoctorDebug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl. 解决: // If you use each() to i...阅读全文

博文 2017-10-26 15:02:56 veidy

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 东海陈光剑

Kotlin 笔记(七)—— 可空类型

前言 测试环境: Kotlin 1.1.4 本文介绍的是 "?" "?." "?:" "!!" 一、 可空性 “ ? ” java 中经常会出现 NullpointerException ,而 Kotlin 能明确指出程序中的哪些变量和属性允许为 null ,如果为 null 就不能调用它的方法,看例子: int getLength(String s){ return s.length(); } 上方是 java 的代码,如果给这个方法传递一个 null 类型的参数,则会报错,往下继续看 fun getLength(s:String):Int = s.length 上方是 Kotlin 的代码,如果在没有任何标记的情况下,它的参数是不允许为 null 的,必须是 String 类型的,这就限...阅读全文

博文 2017-08-16 16:04:07 珞神

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 咖啡加方糖

如何利用 Anko 扩展 RecyclerView 或 Custom View

前言 Anko 作为 jetbrain 同时推出的辅助 kotlin 的神兵利器,可以使用 DSL 语言来快速的完成 android 布局。 从此可以完全抛弃 xml了。anko 默认扩展了LinearLayout(verticalLayout,没有 horizontalLayout,可以使用 orientation 来定义),relativeLayout 等, 但对于 RecyclerView 或者 自定义的 View 没有支持。 所以想要在代码中使用他们,就需要 anko extension,这里简单的扩展一下 RecyclerView 1.添加依赖 compile 'com.android.support:recyclerview-v7:$support_version' // Ank...阅读全文

博文 2017-08-10 11:03:47 关内侯和他的五百勇士

Java/Kotlin和C/C++的混编

Java和C/C++混编技术是一种常用的开发技术,目的是使用C/C++弥补Java在高性能计算方面的不足。如Android的Native开发,我们经常是使用Native代码来处理一些复杂的计算,比如图象处理。实现Java/Kotlin和C/C++通讯的接口叫Jni,下面我们来看一下Jni接口的基本用法。 1. Java/Kotlin调用C/C++方法 首先在Java/Kotlin中声明一个Native的空方法 package com.test.native; public class Main { //Java: 使用native关键字声明 public native String getString(int index); //Kotlin: 使用external关键字声明 public ...阅读全文

博文 2017-08-21 15:03:54 wzjing

Android Room使用详解

使用Room将数据保存在本地数据库 Room提供了SQLite之上的一层抽象, 既允许流畅地访问数据库, 也充分利用了SQLite. 处理大量结构化数据的应用, 能从在本地持久化数据中极大受益. 最常见的用例是缓存有关联的数据碎片. 以这种方式, 在设备不能访问网络的时候, 用户依然能够浏览离线内容. 任何用户发起的改变, 都应该在设备重新在线之后同步到服务器. 因为Room为你充分消除了这些顾虑, 使用Room而非SQLite是高度推荐的. 添加依赖 Room的依赖添加方式如下: 1 dependencies { 2 def room_version = "1.1.1" 3 4 implementation "android.arch.persistence.room:runtime:$r...阅读全文

博文 2018-07-12 13:01:12 littlepanpc

android studio debug 调试

Debug断点跟踪调试是软件开发过程中分析代码、解决BUG的一个重要手段,不同IDE下的Debug工具的使用有所不同,但提供的调试功能一定是应有尽有。很多程序员的Debug能力都停留在基本的单步执行、断点跳跃上,殊不知还有很多鲜为人知但非常方便的调试技巧。本文就以Android Studio工具为例,展示一些一般人不知道的Debug调试技巧,掌握这些,你也算是Debug调试大师了。 基本使用 Debug App有两种途径,第一种是直接点击下图运行按钮右侧的小虫状图标,运行并调试当前Project,这个我想大家都知道。 第二种就是调试当前已经处于运行状态下的App,这也是我们用的更多的一种调试手段,即Attach debugger to Android process。点击运行按钮右侧第三个按...阅读全文

博文 2017-07-31 14:02:46 丁佳辉

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 BLE Kotlin 笔记

BLE 与经典蓝牙的区别 BLE 的 Kotlin 下实践 经典蓝牙(Classic Bluetooth)& 低功耗蓝牙(Bluetooth Low Energy) 经典蓝牙可以用与数据量比较大的传输,如语音,音乐,较高数据量传输等。 BLE 特点就如其名,功耗更低的同时,对数据包做出了限制。所以适用于实时性要求比较高,但是数据速率比较低的产品,如鼠标,键盘,传感设备的数据发送等。 蓝牙 4.0 支持单模和双模两种部署方式,其中单模即是我们说的 BLE,而双模指的是 Classic Bluetooth + BLE 。实际上,BLE 和经典蓝牙的使用等各方面都像是没有关联的两个东西,甚至因为 BLE 的通讯机制不同,所以是不能向下兼容的;经典蓝牙则可以兼容到蓝牙 3.0 / 2.1。 经典蓝牙...阅读全文

博文 2017-05-27 15:25:27 SoftXJ

android开发学习——Socket发送和接收

client -- server发送过程中,涉及的输入流输出流: http://blog.csdn.net/dlwh_123/article/details/35982015 (良心好文) 需要注意的是:先运行服务器端,再进行客户端。 http://blog.csdn.net/qq7342272/article/details/9698413 (值得推荐的好文) public class SocketServer { public static void main(String[] args) { SocketServer socketServer = new SocketServer(); socketServer.startServer(); } public void startSer...阅读全文

博文 2017-09-11 14:00:31 mengxiao

Shell脚本实现动态配置IP与路由:解决嵌入式Android/Linux有线和无线网卡双网共存问题

Shell脚本实现动态配置IP与路由:解决嵌入式Android/Linux有线和无线网卡双网共存问题 一、网络环境及问题再现 二、命令行方式实现双网共存 三、Shell脚本自动实现双网共存(根据网络环境动态配置IP路由) –>问题:在使用某嵌入式开发板(Android 6.0系统)过程中,发现无法同时进行有线(Ethernet)和无线(WiFi)网卡同时通讯,同时产品又有需求,必须同时通过这两个网卡与内网和外网进行通信。 –>解决:实际方案有两种: 第一种:更改Android 6.0 Firmware层的代码,适配双网卡运行逻辑,可以从根本上解决该双网共存问题。 第二种方案很简单:根据实际网络情况,通过脚本更改路由,实现双网共存。 –>测试环境:嵌入式开发板,无线路由器,网线 实际测试用第二...阅读全文

博文 2017-07-26 22:02:46 HowieXue

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

使用Gson解析Json

使用Gson解析Json Overview 在日常的开发中,我们经常得需要解析Json数据,烦不胜烦,还好有 Gson 这一开源类库来帮助我们处理这些繁琐的工作。大体上Json的数据格式大概可以分为以下几种: Json数据是一个对象 Json数据是一个对象数组 Json数据是一个对象,但是对象中嵌套着其他的对象或者数组 PS: 本文代码通过Kotlin语言描述。 解析简单对象 这是一个Student类的Json数据,接下来我们要通过Gson解析它。 { "s_num":"s00001", "age":18, "gender":"M", "name":"LD" } 要想使用Gson解释Json数据,首先得有已有与Json数据相对应的实体类。 data class Student(@Serial...阅读全文

博文 2018-08-31 09:00:02 slyfox

开始使用Kotlin协程

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

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

Android Service的全面解析

Service基本用法 基本用法即同进程下Activity与Service双向通信,先描述整体实现过程然后直接上代码: 新建一个继承自Service的类MyService,然后在AndroidManifest.xml里注册这个Service Activity里面使用bindService方式启动MyService,也就是绑定了MyService(到这里实现了绑定,Activity与Service通信的话继续下面的步骤) 新建一个继承自Binder的类MyBinder 在MyService里实例化一个MyBinder对象mBinder,并在onBind回调方法里面返回这个mBinder对象 第2步bindService方法需要一个ServiceConnection类型的参数,在ServiceC...阅读全文

博文 2018-01-18 00:00:34 JMatrix

Android跨平台编译 —— protobuf

前言 前言都在 Android跨平台编译 —— BOOST 正文 直入正题。编译protobuf的android版本我们使用的环境如下 CMake: 3.6 NDK: r16b Protobuf: v3.5.1 OS : Mac os 首先我们下载protobuf的代码https://github.com/google/protobuf/releases 直接下载cpp平台的就可以了。 1 首先进入到cmake目录下,创建一个文件夹 build-armeabi-v7a 2 然后我们在根目录下(protobuf的顶层目录)添加一个android.sh,代码如下 cd cmake && cd build-armeabi-v7a # Step 3. Generate Makefile with C...阅读全文

博文 2018-02-12 20:02:38 街角的小丑

Caused by: android.os.NetworkOnMainThreadException

问题: Caused by: android.os.NetworkOnMainThreadException at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1448) at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:102) at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:90) at java.net.InetAddress.getAllByName(InetAddress.java:787) at com.an...阅读全文

博文 2017-10-31 21:03:43 东海陈光剑

kotlin Context使用

在activity级下使用this表示context 在内部类里面是用外部类的实例对象表示context 使用kotlin的标签语法从内部类使用外部类的实例表示context 在activity级下使用this表示context kotlin中取消了xxxActivity.this的用法,所以我们可以在activity下新建一个Context属性——instance指向它本身。然后在其他地方使用。如果使用的地方是在activity这一级则可以直接使用this指向它本身 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.a...阅读全文

博文 2017-06-30 22:01:06 damnivictory

kotlin java 混合代码 maven 打包

今天尝试 把项目里面的一个 POJO 类,改成 kotlin,没成想打包的时候出问题了, 说 无法识别的标识。。, 这个应该有很多解决方法,最简单的是。 pom.xml 里面原来的不动,添加下面一个专门编译 kotlin 的插件配置 org.jetbrains.kotlin kotlin-maven-plugin ${kotlin.version} compile compile compile ...阅读全文

博文 2018-03-23 20:02:05 SimonAt

[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使用Glide 4.0.0

kotlin使用Glide 4.0.0 官方链接 Gradle引用 repositories { mavenCentral() } dependencies { implementation 'com.github.bumptech.glide:glide:4.0.0' implementation 'com.android.support:support-v4:25.3.1' } 这里使用 implementation 看郭大神的博客。 基础使用 在Activity和Fragment中直接使用。 Glide.with(fragment) .load(myUrl) .into(imageView) Glide.with(activity) .load(myUrl) .into(imageVi...阅读全文

博文 2017-08-16 19:03:53 我要在河边钓一整天的鱼

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语言开发android,调用android系统对话框运行程序Dialog.show()报错。

刚用kotlin语言几天,对它的语法还不是很掌握,今天就遇到了一个难缠的问题,调用android系统自带的dialog对话框,本来想是很简单的,结果弄了一下午。先上我第一次的错误代码: val Dialog = AlertDialog.Builder(this@WelcomeActivity).create() Dialog.setTitle(R.string.exit_dialog_Title) Dialog.setMessage("确定要退出游戏?") Dialog.setCancelable(false)//用于屏蔽返回键和点击空白处 Dialog.setButton(DialogInterface.BUTTON_POSITIVE, "继续玩" ) { dialog, _->dialo...阅读全文

博文 2017-06-18 18:01:11 凌雲

Android Studio 3.0 编译出来的apk无法安装问题解决

Android Studio 3.0 编译出来的apk无法安装,错误代码为(-15),机型:小米6(miui开发版) 有的人在2.3的时候就遇到过这个问题,而我是3.0了才发现有这个问题,主要是签名问题,只能勾选V1才行,都不勾或者都勾、只勾V2都是不行的。 也就是说直接运行了之后在build里面复制出来的安装包,基本上都是不可用的,可能是有其他的配置方法,但是我没找到这方面的方法,只能是每次需要正式打包的时候,Build->Generate Signed apk打...阅读全文

博文 2017-11-03 12:02:45 她叫我小渝

Android面试一天一题(Day 41:一大波面试官正在准备Kotlin面试题)

今年的Google I/O大会上, Google将Kotlin列为Android官方开发语言,Android Studio 3.0的预览版默认集成了Kotlin。Kotlin这门语言从诞生到稳定已历经5年时间,终于在去年底发布了1.0的稳定版。Angroid官方也终于忍受不了Java 6(貌似还有版权问题),迫不及待将开源的Kotlin作为官方指定用语。Google的官方说明:https://developer.android.com/kotlin/index.html这势必会对Android的应用开发造成影响,虽然不会让很多习惯Java开发的程序员立刻转投Kotlin的怀抱,不过作为Java的程序员你至少还是要知道Kotlin是什么的,是否“弃暗投明”或是“弃明投暗”那就是后话了。 Kot...阅读全文

博文 2017-05-31 12:02:21 goeasyway

Android混淆

https://mp.weixin.qq.com/s/5n9j-59o8D5ByvZQ2INddQ 1混淆介绍 Proguard是一个Java类文件压缩器、优化器、混淆器、预校验器。压缩环节会检测以及移除没有用到的类、字段、方法以及属性。优化环节会分析以及优化方法的字节码。混淆环节会用无意义的短变量去重命名类、变量、方法。这些步骤让代码更精简,更高效,也更难被逆向(破解)。 混淆后默认会在工程目录app/build/outputs/mapping/release(debug)下生成一个mapping.txt文件,这就是混淆规则,我们可以根据这个文件把混淆后的代码反推回源本的代码,所以这个文件很重要,注意保护好。原则上,代码混淆后越乱越无规律越好,但有些地方我们是要避免混淆的,否则程序运行就会...阅读全文

博文 2018-06-07 15:02:01 dubo-

使用kotlin在android下获取位置

14年毕业一直从事delphi桌面开发,尝试着去转android,google发布了官方开发语言,觉得是一个机会,所以尝试使用kotlin开发,在获取位置信息的时候遇到了一下问题,先记录如下,以便以后查阅。 参考资料: 1.探索android6.0的权限模型 http://blog.csdn.net/u014254481/article/details/50338237 2.Android M 新的运行时权限开发者需要知道的一切,android开发者 http://www.android100.org/html/201509/01/178112.html 3.android中通过GPS或NetWork获取当前位置的经纬度 http://blog.csdn.net/cjjky/article/...阅读全文

博文 2017-06-08 12:01:04 geek_loser

Spring Boot缓存 《Spring Boot 2.0极简教程》

Spring Boot缓存 《Spring Boot 2.0极简教程》—— 基于 Gradle + Kotlin的企业级应用开发最佳实践 我们知道一个系统的瓶颈通常在与数据库交互的过程中。内存的速度远远快于硬盘速度。所以,当我们需要重复地获取相同的数据的时候,我们一次又一次的请求数据库或者远程服务,这无疑是性能上的浪费——会导致大量的时间耗费在数据库查询或者远程方法调用上(这些资源简直太奢侈了),导致程序性能的恶化——于是有了“缓存”。缓存(Cache)就是数据交换的缓冲区。本章介绍在 Spring Boot 项目开发中怎样来使用Spring Cache 实现数据的缓存。1.1 Spring Cache 简介Spring 3.1 中,Costin Leau引入了对Cache的支持。在spri...阅读全文

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

Android进阶之ProGuard代码混淆

简介 Proguard工具通过移除无用的代码以及使用语义隐晦的名称来重命名类、字段和方法,从而达到压缩、优化和混淆代码的目的。最终您将获得一个较小的 .apk 文件,此文件更难于进行反向工程。由于 ProGuard 会使应用更难于进行反向工程,因此当应用使用对安全性要求极高的功能时(例如,当您向应用授予许可时),您必须使用此工具。 ProGuard 已集成到 Android 构建系统,所以您无需手动调用此工具。只有当您在发布模式下构建应用时,ProGuard 才会运行,因此当您在调试模式下构建应用时,就无需处理混淆后的代码。是否运行 ProGuard 完全由您决定,但我们强烈建议您运行该工具。 本文介绍如何启用和配置 ProGuard,以及如何使用 retrace 工具解码混淆后的堆栈跟踪信...阅读全文

博文 2017-07-03 16:02:50 grasp_D

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

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

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

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