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

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

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

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

android退出应用销毁所有的activity

文章原文:点击打开链接 Activity是存放在栈中。在默认的情况下(standard)Activity在栈中是以先进后出、后进先出的方式进行存放。最开始出现的Activity会存在栈底,最新启动的Activity总是会存在栈顶。当我们开启的Activity越来越多,当前想在某个界面退出当前应用程序的时候,或者双击返回键退出当前应用程序。这个时候只能一个一个的把当前所有启动的Activity销毁,直到清空栈中的所有Activity,应用程序才能退出。 销毁所有Activity,退出应用程序常见的方式有下面四种: (1) System.exit(0) 使用系统的方法,强制退出 (2) 抛出异常,强制退出 (3) 使用Application退出 (4) 使用广播退出 第一种方式 System.e...阅读全文

博文 2017-10-28 23:01:36 huangtenggg

Android 跳转系统选择本地视频的功能

今天在项目开发的过程中产品要求添加选择本地视频的功能,于是就翻阅和查找各种资料,进行功能的开发,但是在开发过程中发现,各种不同的品牌的手机跳转至系统选择本地视频的功能结果不太一样,所以我就对一些主流的品牌进行了测试,现做如下总结: 1.选择本地视频的功能 Button click event: Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, REQUEST_VIDEO_CODE); 打开方式有两种action,1.ACTION_PICK;2.ACTION_GET...阅读全文

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

android视频压缩

项目中需要上传视频,自然就需要压缩视频了,然后就去百度,google,结果都是基于 FFmpeg,自己也集成了 FFmpeg看看效果,结果大失所望,应用多了二十兆,压缩一个10秒50多兆的视频用了将近1分钟,以为自己集成有问题,然后又是百度和问一些大牛,都说确实存在这样的问题,压缩效率很低。然后就放弃了 FFmpeg。最后试过阿里的,没找到压缩放弃了,又有人说七牛短视频,下载了demo试了下感觉不错,看到它有一个转码功能实现了压缩,集成测试了下确实很不错,这里写出来让需要的同学少走点弯路。(我弄了一周多,一边开发别的功能,一边寻找压缩视频的方法) 使用七牛短视频里面的转码功能,先去下载sdk; demoApk下载(自己将官方demo打了一个包):链接:点击打开链接 密码: rxkx 官网链接...阅读全文

博文 2018-01-24 20:01:31 qq_31796651

Kotlin中Short转ByteArray

最近开始用kotlin写一些代码,但是发现里面Short没有移位的操作,只能先转到Int然后转成ByteArray private fun Short.toByteArray(): ByteArray { val intValue = toInt(); var data: ByteArray = kotlin.ByteArray(2) data[0] = ((intValue) and 0xFF).toByte() data[1] = ((intValue shr 8) and 0xFF).toByte() return data } 一会增加ByteArray转Short的操作,请继续关注...阅读全文

博文 2017-06-16 14:02:15 lrannn

微信内H5唤醒本地安装应用终于有解决方案了

我之前做了好多工作,就是解决不了在微信内打开的H5唤醒我的本地应用并且跳转到指定的页面。之前我是这么做的 1 主要是在AndroidManifest.xml里面的配置,配置你的应用中从头到尾不会被回收掉的那个activity上 注意:android:scheme 是你app在微信开发者申请的appid,微信使用的是qq浏览器的内核,内部把这一层拦截了,这就是你用手机上的浏览器可以打开,在微信里就打不开了,这就是原因,你需要用appid作为scheme让微信去识别 阅读全文

博文 2017-06-14 20:02:21 next_discover

用kotlin写的android Log的几乎完美封装

支持显示行号 支持显示类 支持跳转至Log所在位置 支持log数据保存sd卡 支持设置log文件大小保存sd卡 结合上一章 用kotlin写的android FileUtils使用 github地址 欢迎访问个人博客 85F011AA-9E0F-4DE1-92D2-46004F149344.png import android.util.Log import java.io.File import java.text.SimpleDateFormat import java.util.* import java.util.concurrent.ExecutorService import java.util.concurrent.Executors /** * Created by laij...阅读全文

博文 2017-09-04 12:03:42 androidman

Android 6.0&运行时权限 笔记

生 API 的使用 实践中问题 首先介绍一下,Android 6.0 的权限机制的变化大家都知道,从原来安装时一次性全部授权,变为在运行时才向用户申请授权。 当然在 6.0 也不是全部的权限都需要运行时授权,现在的权限分为两类: Normal Permissions,一般不涉及用户隐私,比如手机震动、访问网络等 Dangerous Permission,涉及到用户隐私的,比如访问通讯录等,这一类的权限就需要运行时授权 然后是最后的效果图: Gif 演示 因为系统原生的 API 中,如果用户选择了「不再提示」则不会再弹出申请权限的对话框。但是假设我的 APP 依靠蓝牙向设备发送信息,但用户未授予蓝牙权限,则这个 APP 就无作为了,所以要捕获到这种情况并且弹出对话框。 还有一点比较重要的,下面...阅读全文

博文 2017-06-01 18:02:08 SoftXJ

Kotlin——最详细的控制语句使用

在前面 的章节中讲解了Kotlin语言中的数据类型、变量与常量的定义。不了解请参见前面的内容: Kotlin从无到有系列之数据类型介绍。 Kotlin从无到有系列之变量、常量、注释的使用。 下面详细为大家讲解Kotlin中的控制语句使用。不得不说其和Java中还是有很多不一样的地方。 目录 一、if语句 在Kotlin中的if语句和Java还是还是有一定的区别的,它能在Java中更灵活,除了能实现Java写法外,还可以实现表达式(实现三元运算符),及作为一个块的运用。 1、传统写法(同Java写法一样) 例: var numA = 2 if (numA == 2){ println("numA == $numA => true") }else{ println("numA == $numA ...阅读全文

博文 2017-10-25 12:00:00 Jetictors

Android跨平台编译 —— ICONV

前言 前言都在 Android跨平台编译 —— BOOST 正文 磕磕绊绊终于弄上了boost,今个很高兴!!边上眼睛就是一同编译!然后醒来发现出问题了…… undefined reference to `libiconv_open' undefined reference to `libiconv' undefined reference to `libiconv_close' undefined reference to `libiconv_open' 赶紧看下源文件,没问题啊,也包含了iconv.h,并且跳转之后链接到了 ndk-bundle/sysroot/usr/include 为何没定义?仔细看,发现问题出在 #if __ANDROID_API__ >= __ANDROID_AP...阅读全文

博文 2018-02-11 19:02:38 街角的小丑

Kotlin语法学习-变量定义、函数扩展、Parcelable序列化、编写工具类、Activity跳转

今年 Google I/O 2017 开发者大会中,Google 宣布正式把 Kotlin 纳入 Android 程序的官方一级开发语言(First-class language),作为Android开发者,当然要逐步熟悉这门语言,第一步就要从语法开始学习。 在这之前,我们需要了解怎么使用Kotlin编写一个Android应用。对于Android Studio 3.0版本,我们在创建工程的时候直接勾选 Include Kotlin support 选项就可以了;对于3.0以前的版本,我们需要安装Kotlin插件,同时还要手动配置gradle,方法如下 在app的gradle下加入如下代码 apply plugin: 'kotlin-android' apply plugin: 'kotlin...阅读全文

博文 2017-05-30 21:00:31 johnWcheung

Kotlin 自动跳转Activity。

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val handler = Handler() handler.postDelayed({ gotoActivity() }, 1000 * 5) //x秒后执行 } fun gotoActivity() { startActivity(Intent(this@MainActivity, OtherActivity::class.java)) finish(...阅读全文

博文 2017-05-27 11:00:08 Kilosnow

初探ios

新加入一家公司,由于业务需要,我这个做了5年android的程序员开始学习ios开发,一个月过去了,来谈谈感想吧object-c还是swift第一个就是语言的选择,刚开始因为组里的其他开发人员用的是OC,自然先去看OC,不看不知道,一看吓一跳,这他娘的是什么鬼,完全搞不懂....看到swift的时候眼前一亮,貌似和java很像啊,有了好感之后,学习还是比较轻松的,而且考虑到以后的可用性,面向对象的是个趋势,android也推出了新的开发语言kotlin,比较来看,跟swift也相似,所以最后决定还是从swift入手吧第一次用macbook开发ios自然离不开mac,以前总觉得mac是个装逼的存在(现在也这么觉得),到了开发阶段,不用不行了,新买了个macbook,瞎点了一天,幸好有同事帮忙调...阅读全文

博文 2017-06-19 17:04:06 害羞的老焦

Android Studio笔记之快捷键

h2 { color: #4abcde } pre { background-color: #f8f8f8; border: solid 1px #ccc; overflow: auto; font-size: 15px; font-family: Consolas, Courier, monospace; padding: 6px 10px; line-height: 20px } a { text-decoration: none } a:hover { color: red; text-decoration: underline } .p1 { font-size: 22px; font-family: 楷体, "微软雅黑", arial; color: #787878; font-w...阅读全文

博文 2018-03-22 12:00:32 huangzenglie

Android MediaPlayer+SurfaceView播放视频(附Demo)

MediaPlayer,顾名思义是用于媒体文件播放的组件。Android中MediaPlayer通常与SurfaceView一起使用,当然也可以和其他控件诸如TextureView、SurfaceTexture等可以取得holder,用于MediaPlayer.setDisplay的控件一起使用。 对于现在的移动设备来说,媒体播放时一个非常重要的功能,所以掌握MediaPlayer对于Android程序员来说,也是一个基本要求了。由于媒体播放是一个比较复杂的事情,涉及到媒体资源的加载、解码等耗时耗资源的操作,所以MediaPlayer的使用相对其他组件变得复杂了许多。 掌握MediaPlayer需要先掌握MediaPlayer的工作过程和它的一些重要的方法,在Android Develope...阅读全文

Android Inline Hook

最近终于沉下心来对着书把hook跟注入方面的代码敲了一遍,打算写几个博客把它们记录下来。 第一次介绍一下我感觉难度最大的inline hook,实现代码参考了腾讯GAD的游戏安全入门。 inline hook的大致流程如下: 首先将目标指令替换为跳转指令,跳转地址为一段我们自己编写的汇编代码,这段汇编代码先是执行用户指定的代码,如修改寄存器的值,然后执行被替换掉的原指令2,最后再跳转回原指令3处,恢复程序的正常运行。 为了避开注入过程,我们通过hook自己进程加载的动态连接库进行演示。 1、实现目标注入程序 我们将这个程序编译为动态连接库,然后在主程序中加载,作为hook的目标。 target.h#ifndef TARGET_H_INCLUDED #define TARGET_H_INCLU...阅读全文

博文 2018-01-10 16:00:48 mmmmar

Android onActivityResult()运行时刻的问题

今天在开发过程中遇到一个很是怪异的问题,就是方法onActivityResult的执行问题,问题是当我从当前的Activity跳转的时候,尚未做任何动作,onActivityResult()就已经执行了,很是纠结,最后找到原因了,就是说跳转到目标Activity的启动模式的问题,如果跳转目标Activity的启动模式是singleInstance,那么你的目标Activity就在一个新的Task栈中,一旦跳转,你当前的Activity的onActivityResult()就会马上执行。如果目标Activity是singleTask,当前Activity是singleTask也不行,把目标Activity改为standard模式就行了,原因有待研究一下Activity的源码...阅读全文

博文 2017-06-24 17:03:07 我爱睡觉

近期半个月面试总结

说来惭愧,面了10几家,没收到什么offer- - 想吐槽的 大部分面试官,不会仔细看你简历上的Github开源和简书博客 部分hr不认真,同一个公司两个招聘网的招聘要求不一样,约去面试才知道方向不合适 面试官是安卓的公司比较少. 对于非计算机专业的转行人员比较在意.(通常面试第一句,你是学音乐的,怎么来搞it了- -) 去软通面了个外包岗位,最后直接以专业拒了,即使面试评价再好也没用.(面了另一个组,还是过了- -) 印象中的面试题: 内存优化,图片缓存,内存泄漏 activityA,B跳转时生命周期(好基础- -) 组件化具体使用,使用中注意的地方和难点 mvp要点 出现掉帧现象的原因 事件分发 handle 工厂 装饰 观察者模式(由于自己简历上写了,所以有些就问了) EventBus...阅读全文

博文 2017-09-26 22:03:47 Jlanglang

Kotlin-07.返回和跳转(return/break/continue)

官方文档: http://kotlinlang.org/docs/reference/returns.html 1.返回和跳转 Kotlin 和java一样,有三种结构化跳转表达式: return 从包围它的函数或匿名函数返回 break 终止循环 continue 跳出本次循环,继续下一次循环 和Java不同的是,这些表达式都可作为更大表达式的一部分: val s = person.name ?: return 2.break和continue @标签 和Java不同的是,在 Kotlin 中任何表达式都可以用 标签@ 来标记: loop@ for (i in 1..100) { for (j in 1..100) { if (……) break@loop // 终止loop标记的循环 i...阅读全文

博文 2017-08-07 21:03:47 lioilwin

Android逆向经验总结

1.有选择性选择设备 adb devices -l List of devices attached emulator-5554 device product:sdk model:sdk device:generic adb -s emulator-5554 shell root @android :/ # 2.调试模式启动程序 am start -D -n com.yaotong.crackme/com.yaotong.crackme.MainActivity 此时应用程序会等待被调试。此时可以做IDA附加等动作。 jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8604 流程 执行android_server 端...阅读全文

博文 2017-06-24 18:02:47 我爱睡觉

Android ListView用法

写了一个简单的示例来说明ListView的用法:给定一个单词,下面有四个含义,找出正确的一个,无论是否成功,则会跳转到下一个单词;主要用到的知识有: findViewById()、 ListView、 AdapterView、 匿名内部类、 ArrayList的一些用法:下面主要看代码,代码里面注释的很详细,就不再过多赘述:xml: 1 2 阅读全文

博文 2017-11-17 01:00:35 leavescy

android:scheme 通过uri跳转到APP应用指定Activity

最近公司有个需求,点击第三方APP或者APP内的H5页面然后直接跳转到APP里面,比如浏览器打开一个H5页面,然后点击某个链接就直接到APP的某个指定的Activity,经过研究发现实现还是蛮easy的,下面说下方法吧。 首先,在AndroidManifest.xml里面进行配置,在对应的Activity加上一个intent-filter, 如下: 阅读全文

博文 2017-11-21 15:01:44 msn465780

android中判断设备定位状态

boolean flag = false; LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // 通过GPS卫星定位 boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); // GPS辅助定位,AGPS,借助网络 boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); if (gps || network) { flag = tru...阅读全文

博文 2017-06-20 15:02:44 净琉璃

Android中Kotlin的学习(点击事件、跳转、for循环、RecyclerView)

刚刚学习Kotlin,有什么不对的地方请见谅。 首先属性的声明中有两个很重要的关键字: var 和 val。 例如: var a = "hello" val b = "hello"区别是什么呢? var可多次分配; val只能一次初始化。 点击事件: xml中View定义: 有几种实现方法,我就偷会儿懒,只写最简单的一种: override fun onCreat...阅读全文

博文 2017-06-24 05:01:01 YuGuo_TianQing

开发文档之Kotlin语言

准备开始 基本语法习惯用语编码风格 基础 基本类型包控制流返回与跳转 类和对象 类和继承属性和字段接口可见性修饰词扩展数据对象泛型嵌套类枚举类对象表达式和声明代理模式代理属性 函数和lambda表达式 函数高级函数和lambda表达式内联函数 其它 多重申明Ranges类型检查和自动转换This表达式等式运算符重载空安全异常注解反射动态类型 参考 API语法 互用性 与 java 交互 工具 Kotlin代码文档使用Maven使用Ant使用Griffon使用Gradle FAQ 与java对比与Scala对...阅读全文

博文 2017-05-23 11:43:05 HighForehead

kotlin实现 简单的MVP模式

最近学习了一下MVP模式。 我自己的理解是: M:model 数据的处理:网络请求,读写文件等; V:view 界面处理:Toast,EditText获取,界面跳转等; P:presenter 协调V和M,调用M拿到数据,再调用View显示出对用的界面。 上代码:首先是目录 然后看看具体代码: ILoginModel package com.antiandi.android.mvpdemo.kotlin.mvp.model.imodel /** * Created by wk on 2017/6/6. */ interface ILoginModel { fun login(userName : String,password : String,onLoginListener: OnLogi...阅读全文

博文 2017-06-21 13:01:01 wkaia

Kotlin笔记 返回和跳转

kotlin有三种跳转方式 return 从最近的函数返回 break 终止最近的loop continue 从最近的loop开始下一次循环 label 任何表达式都可以标上label,如abc@ loop@ for (i in 1..100) { for (j in 1..100) { if (...) break@loop } } 从label退出 fun foo() { ints.forEach { if (it == 0) return print(it) } } 以上从lambda函数退出时,是从foo退出了,如果要从lambda函数退出,则可以 fun foo() { ints.forEach lit@ { if (it == 0) return@lit print(it) } ...阅读全文

博文 2017-05-27 15:25:58 yangweigbh

android模块化

一、前言 万维网发明人 Tim Berners-Lee 谈到设计原理时说过:“简单性和模块化是软件工程的基石;分布式和容错性是互联网的生命。” 由此可见模块化之于软件工程领域的重要性。 从 2016 年开始,模块化在 Android 社区越来越多的被提及。随着移动平台的不断发展,移动平台上的软件慢慢走向复杂化,体积也变得臃肿庞大;为了降低大型软件复杂性和耦合度,同时也为了适应模块重用、多团队并行开发测试等等需求,模块化在 Android 平台上变得势在必行。阿里 Android 团队在年初开源了他们的容器化框架 Atlas 就很大程度说明了当前 Android 平台开发大型商业项目所面临的问题。 二、什么是模块化 那么什么是模块化呢?《 Java 应用架构设计:模块化模式与 OSGi 》一书...阅读全文

博文 2017-10-19 11:01:49 githubzzggxx

Android 跳转到各系统页面

引用包:import android.provider.Settings。 1. ACTION_ACCESSIBILITY_SETTINGS : // 跳转系统的辅助功能界面 Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS); startActivity(intent); 2. ACTION_ADD_ACCOUNT : // 显示添加帐户创建一个新的帐户屏幕。【测试跳转到微信登录界面】 Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT); startActivity(intent); 3. ACTION_AIRPLANE_MODE_SETTINGS:...阅读全文

博文 2017-07-05 14:02:43 微笑的江豚

android开发中那些掉过的坑(持续更新)

“我的代码怎么可能会有bug,为什么crash了?” “明明我就是按这个操作来的,为啥我这个就不行?肯定是这个人的代码有问题。” “我好像以前碰过这个问题,怎么解决的啊?” “这都是些什么问题” “这真是令人窒息的操作” “。。。。” 明天你是否会想起,那些你踩过的坑? 在开发中难免遇到令人摸不着头脑,或者明明很熟悉却就是不知道怎么做的问题,下面将记录平时中本人遇到的一些操作解决方法,都是平时笔记中的东西,现在拿出来整理一下,也算是一个回顾,大家有遇到类似的问题也可以参考一下。 ·使用ButterKnife时总是报空指针异常 解决方法: 1.首先在Project的build.gradle文件中增加 2.在Module的build.gradle文件中增加两个地方: ·android studi...阅读全文

博文 2017-11-25 14:01:47 Ezreal_to

ORBSLAM2 android学习

主要编译参考Abner_Chen的博文: ORB_SLAM2移植到Android,完整配置+填各种自己遇到的坑 编译过程: 1.关于设置ndk路径的问题,有时候会提示当前路径不对 在C:\ndk\android-ndk-r13b下新建一个文件ndk-build 然后就可以了 2.jni中Android.mk中加入libopencv_java.so,并且改变opencv.mk的路径,注意有一行是include的路径。 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := opencv_java LOCAL_SRC_FILES := libopencv_java.so include $(PREBUILT_SHARED...阅读全文

博文 2018-02-01 16:01:34 renye_lpl

Android Framework学习(八)之Handler消息机制(Native层)解析

在深入解析Android中Handler消息机制一文中,我们学习了Handler消息机制的java层代码,这次我们来学习Handler消息机制的native层代码。 在Java层的消息处理机制中,MessageQueue类里面涉及到多个native方法,除了MessageQueue的native方法,native层本身也有一套完整的消息机制,用于处理native的消息。在整个消息机制中,而MessageQueue是连接Java层和Native层的纽带,换言之,Java层可以向MessageQueue消息队列中添加消息,Native层也可以向MessageQueue消息队列中添加消息。 MessageQueue MessageQueue是在Looper的构造方法里面创建的 MessageQue...阅读全文

博文 2017-06-22 04:01:37 u012124438

Kotlin学习笔记(六十一)Kotlin Android

以下是一个Kotlin版Android程序的小例子 先在build.gradle文件中添加布局拓展,可以在java文件中直接使用在布局文件中声明的id的控件,省去findViewById的步骤。 apply plugin: 'kotlin-android-extensions' 再在build.gradle中的dependencies中添加anko,可以直接在java文件中写布局,省去xml文件。 compile "org.jetbrains.anko:anko-sdk15:0.9.1" activity_main.xml 阅读全文

博文 2017-07-19 20:03:40 lkmc2

android 自定义application

自定义Application-MyApplication,继承了常用一些方法,包括页面跳转之后页面栈,指定保留页面退出其他,获取当前最上层页面名称等常用方法 public class MyApplication extends Application { private volatile ArrayList mTempActivity = new ArrayList(); public static Typeface typeFace; private Context mResumeContext; public Context getResumeContext() { return mResumeContext; } public void setR...阅读全文

博文 2017-09-05 15:03:17 nandecanghai123

Android短视频SDK转码实践

一. 前言 一些涉及的基本概念: 转码:一般指多媒体文件格式的转换,比如分辨率、码率、封装格式等; 解复用(demux):从某种封装中分离出视频track和音频track,然后交给后续模块进行处理; 复用(mux):将视频压缩数据(例如H.264)和音频压缩数据(例如AAC)合并到某种封装格式的文件中去。常提到的MP4即是一种封装; 编码(encode):通过专门的算法(例如H.264或AAC)来对原始音视频数据进行压缩; 解码(decode):对压缩后的数据进行解压缩。 短视频APP中录制完成后,为什么要做转码: 原始视频文件码率较大,上传下载都需要很长时间,不利于传播; 编辑时增加特效、转场效果后,只是在预览中有效,原始文件并未改变,需要进行一次转码来把这些效果合成进最终的文件; 多段视...阅读全文

博文 2017-12-18 20:02:40 敏哥侃视界

Android多媒体之使用MediaRecord录制aac

尝试使用MediaCodec转码pcm到aac没有成功,不过发现可以使用MediaRecord录制aac: MediaRecorder mediaRecorder; public String prepareAudio() { try { mediaRecorder = new MediaRecorder(); mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); Str...阅读全文

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

【kotlin从入门到深坑】系列目录

Kotlin 【Kotlin从入门到深坑】让你从对kotlin一无所知到「有所思有所得」 本教程是一系列介绍kotlin 的相关语法的教程,后续还有专门讲解kotlin for android 相关的教程。如果内容中出现错误,请留言指正,感谢。 目录 基础类型 语句 返回和跳转(讲解kotlin的返回和跳转) 类和继承 类的覆盖属性和方法以及抽象类 其他 github观看 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

博文 2017-06-09 21:00:35 guohaiyang1992

玩转 Kotlin 委托属性

Kotlin 属性 要讲 Kotlin 的委托属性,要先从 Kotlin 的属性说起,当然关于属性的定义就不多介绍了。这里介绍一下 Kotlin 区别于 Java 独有的 back field 的概念。用过 Kotlin 的人都知道,Kotlin 的属性是天生带 Setter/Getter 方法的,不过如果要重写他们的话,写法有所不同。 var a: String = "1" get() = field set(value) { field = value } 我们可以看到,当需要重写 Setter/Getter 方法的时候,就需要用到 field 这个新概念,它其实是代表这个域本身。有些人刚开始看到这个东西的时候,可能会觉得很神秘,其实它里面的实现逻辑很简单,就是对应到 Java 中 Se...阅读全文

博文 2017-05-27 15:08:35 哦好么人

教你如何实现 Splash 页面三秒跳转和动态下载最新背景图

最近公司产品大大说我们需要一个动态替换的闪屏页面,like 某猫,某东一样,可以动态替换。产品大大就是厉害,说一句话我们就需要实现好几个功能: 创建一个冷启动后的闪屏页面(Splash 页面) 这个页面默认 3s 倒计时,点击倒计时按钮可以跳转并结束倒计时 点击图片如果有外链,则跳转应用的 web 页面用来作为活动页面(没错这点和某猫很像) 动态替换厉害了,我们需要在进入这个页面后去后台请求一下是否有新的图片,如果是新的图片则下载到本地,替换掉原来的图片,下次用户在进入 Splash 就会看到一个崭新的图片。 效果图 一、布局实现 阅读全文

博文 2017-06-14 20:02:21 我姓王叫叔叔

Android如何添加多张引导页

摘要:项目需要添加多张引导页,所以在网上搜集了一些资料并整理好。 Step1 添加一个GuideActivity. 其实这个引导页无非就是一个Activity,里面有一个ViewPager而已。多张图片放进去,装进ViewPager里面。 注意:这里Activity中千万不要设置图片资源,不然会报OOM异常。多张图片会导致内存溢出。 ==>源码如下: ①GuideActivity的Kotlin源码 class GuideActivity : AppCompatActivity(), ViewPager.OnPageChangeListener { private var vp: ViewPager? = null private var imageIdArray: IntArray? = n...阅读全文

博文 2017-10-20 00:00:02 Jason-Jan

[Android]如何做一个崩溃率少于千分之三噶应用app(25)-Kotlin的路由跳转

大家好,我系苍王。以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章。[Android]如何做一个崩溃率少于千分之三噶应用app--章节列表很久没法表文章了,是因为近来实在太忙了。作为程序员,每天十点,半夜一两点下班,感觉身体真的吃不消。我们的团队是伟大的,16天开发一个新的app,8天开发,8天测试,然后上线。或者这是很好的人生经历。但是大脑得不到任何休息,没有了陪伴另家人的时间,没有可以对自己输入,或者输出的事情,也会开始怀疑人生了。我很喜欢程序员这份职业,是因为它能够创造出有趣的东西。我想做一些有趣的东西,我希望搭建自己想要的东西。但是在公司工作,是无法实现这些的。所以我开始写作,开始写一些自己喜欢的内容,在这个时候也得到很多同学的关注,给予各种的鼓励。我并不...阅读全文

博文 2017-06-12 17:02:23 CangWang

Android彻底组件化系列

得到Android组件化方案已经开源,参见Android组件化方案开源。方案的解读文章是一个小的系列,这是系列的第一篇文章: 1、Android彻底组件化方案实践 2、Android彻底组件化demo发布 3、Android彻底组件化-代码和资源隔离 4、Android彻底组件化—UI跳转升级改造 5、Android彻底组件化—如何使用Arouter 关于组件化的设计思路,在移动开发前线上有一篇访谈文章-浅谈Android组件化,欢迎大家一起探讨。 一、模块化、组件化与插件化 项目发展到一定程度,随着人员的增多,代码越来越臃肿,这时候就必须进行模块化的拆分。在我看来,模块化是一种指导理念,其核心思想就是分而治之、降低耦合。而在Android工程中如何实施,目前有两种途径,也是两大流派,一个是...阅读全文

博文 2018-02-11 10:02:44 猴亮屏

Android性能测试

最近在做APP质量竞品分析,其中包括Android前端性能这块,写写总结(Android性能基线和常用命令)。 一、Android性能测试基准 原生 页面重绘 4X重绘面积不超过整个页面的1/3 流畅度 不出现丢帧数>=20的情况 冷启动时间 不超过1秒 cpu 1.前台运行时,未操作,cpu不能被持续占用 2.后台运行时,cpu不能被持续占用 3.熄屏运行时,cpu不能被持续占用 4.退出页面时,上个页面的处理逻辑应立即停止,防止cpu被占用 5.通过竞品对比,优化算法 内存 1.dalvik heap内存不超过手机(不同的手机可能不一样)限制 2.不出现内存泄漏 页面响应时间 不超过1秒 流量 1.流量消耗最大的部分为图片,减小图片的大小(保证图片大小在100KB以下) 2.在Andro...阅读全文

博文 2017-09-07 18:02:45 无言silence

android7.0拨号流程分析

1、按键拨号 1)当点击拨号键的时候 调用DialpadFragment的onClick方法 public void onClick(View view) { int resId = view.getId(); //如果按的是拨号键 if (resId == R.id.dialpad_floating_action_button) { view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); //执行这句代码,具体执行拨号事件 handleDialButtonPressed(); } else if (resId == R.id.deleteButton) { keyPressed(KeyEvent.KEYCODE_DE...阅读全文

博文 2017-11-30 16:01:45 qq_27061049

用kotlin实现activity路由框架的Processor

页面路由框架,无论在android还是在iOS的开发中都是很常见的模块与模块之间的解耦工具,特别是对中大型App而言,基本上都会有自己的路由框架。 Processor的原理 在讲原理之前,先看看整个项目的结构。 SAF-Kotlin-Router结构.png saf-router:是整个路由框架的核心,可以单独使用。 saf-router-annotation:是路由框架的注解模块,可以基于注解来声明router跳转的页面。 saf-router-compiler:由于我们的注解是编译时注解,而非运行时注解。在程序编译时会生成一个RouterManager的类,此类会管理App的router mapping信息。 RouterManager的生成.png 然后,我们来看看神奇的RouterP...阅读全文

博文 2017-05-27 15:14:55 fengzhizi715

Kotlin最简单的入门教程——基础类型(二)

8 If表达式 在 Kotlin 中,if是一个表达式,即它会返回一个值。 因此就不需要三元运算符(条件 ? 然后 : 否则),因为普通的 if 就能胜任这个角色。 // 传统用法 var max = a if (a < b) max = b // With else var max: Int if (a > b) { max = a } else { max = b } // 作为表达式 val max = if (a > b) a else b // if的分支可以是代码块,最后的表达式作为该块的值: val max = if (a > b) { print("Choose a") a } else { print("Choose b") b } // 如果你使用 if 作为表达式而不是...阅读全文

博文 2017-06-05 18:02:34 next_discover

Android studio 点击按钮跳转到新的Activity

package com.example.admin.onclick; import android.content.Intent; import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends AppCompatActivity { private EditText et_phone; @Override protec...阅读全文

博文 2018-04-19 16:02:39 诺岚