AndroidUtilCodeKTX !是时候提升你的开发效率了 !(持续更新中...)

前言 第一次接触 Kotlin 还是 2017 年,当时 Kotlin 还没扶正,也不是 Android 的官方开发语言。至于我是怎么被安利的,没记错的话,应该是 开源实验室 的 Kotlin 教程。当时身边几乎没有人在学 Kotlin,网上相关的资料也很少,我还翻译了一部分官网文档,写了一本 GitBook 。 当然现在有更好的 Kotlin 语言中文站 了,对于英文基础不是很好的同学,这是一个不错的入门资料。 两年半时间过来了,Kotlin 摇身一变,稳坐 Android 官方开发语言。尽管...阅读全文

Segmentfault 2019-07-19 16:03:35 秉心说

Android之使用Kotlin构建Gradle

Android Studio Gradle 3.4.2 5.1.1 首先kotlin-dsl不是什么新鲜的东西了,Gradle5.0发布的时候就有了Gradle Kotlin DSL目前的版本是1.0.2 现在是否可以抛弃groovy拥抱kotlin了呢,~~迁移还是有点小麻烦的! 目前在Android Studio中创建项目时,默认情况下使用Groovy创建Gradle脚本,那如何向kotlin-dsl迁移呢? 语法替换 一般情况下,Groovy中使用单引号或者双引号来表达字符串。但是Kotl...阅读全文

Segmentfault 2019-07-19 13:03:33 Reducto

只需三步实现Databinding插件化

首先为何我要实现Databinding这个小插件,主要是在日常开发中,发现每次通过Android Studio的Layout resource file来创建xml布局文件时,布局文件的格式都没有包含Databinding所要的标签<layout>。导致的问题就是每次都要重复手动修改布局文件,添加<layout>标签等。 所以为了能够偷懒,就有个这个一步生成符合Databinding的布局文件。 这篇文章不会详细讲每一个代码的实现,因为这样太浪费大家的时间,我会通过几个要点与关键代码来梳理实现过...阅读全文

Segmentfault 2019-07-17 09:03:34 idisfkj

ReentrantLock 实现原理笔记(一)

java.util.concurrent.locks.ReentrantLockexclusive : adj. (个人或集体) 专用的,专有的,独有的,独占的; 排外的; 不愿接收新成员(尤指较低社会阶层)的; 高档的; 豪华的; 高级的 reentrant : 可重入; 可重入的; 重入; 可再入的; 重进入 一切从 Thread 线程开始 独占线程 exclusiveOwnerThread 出场: package java.util.concurrent.locks; /** * A sy...阅读全文

Segmentfault 2019-07-12 02:03:37 陈光剑

Flutter个人填坑指南详解

Flutter个人填坑指南详解 第一步 安装解压完flutter后,按照flutter的官方教程,首先需要在你的IDE或者编译器(vscode)里安装插件,分别是 flutter 和dart的插件(我使用的是AS,所以下文以AS为例) 第二步---配置环境变量 由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中 第三步 进入Flutter的目录中,运行命令行脚本 第一个问题!!!! 运行flutter doct...阅读全文

Segmentfault 2019-07-10 21:03:35 Superning

工作日志,多租户模式下的数据备份和迁移

工作日志,多租户模式下的数据备份和迁移 记录和分享一篇工作中遇到的奇难杂症。目前做的项目是多租户模式。一套系统管理多个项目,用户登录不同的项目加载不同的数据。除了一些系统初始化的配置表外,各项目之间数据相互独立。前期选择了共享数据表的隔离方案,为后期的数据迁移挖了一个大坑。这里记录填坑的思路。可能不优雅,仅供参考。 多租户 多租户是一种软件架构,在同一台(组)服务器上运行单个实例,能为多个租户提供服务。以实际例子说明,一套能源监控系统,可以为A产业园提供服务,也可以为B产业园提供服务。A的管理员...阅读全文

Segmentfault 2019-07-10 19:03:33 itdragon

一、apk签名(必须)

一、apk签名(必须)1.apk签名(数字签名)apk签名:开发者(开发商)通过数字证书(也可以叫签名文件),给apk应用打上带有个人(公司)信息的标记,以表示自己是该应用的开发者或拥有者。签名后的apk解压后能看到META-INF文件夹,并且里面会有3个签名相关的文件(MANIFEST.MF,CERT.SF,CERT.RSA)数字签名: 哈希算法(sha1, md5) + 私钥加密查看apk的拥有者keytool -printcert -file CERT.RSA关于Android数字签名相关...阅读全文

CSDN博客 2019-07-10 15:01:36 weixin_40855550

android:paddingLeft和android:layout_marginLeft区别:

android:paddingLeft和android:layout_marginLeft区别: 当你在LinearLayout中分别设置 android:layout_marginLeft="52dip"和android:paddingLeft="52dip"的时候,也许你在及时显示界面看到的效果是一样的,但是这两个属性是有区别的,android:layout_marginLef是设置整个布局离左边的距离是52像素,而android:paddingLeft是设置布局里面的内容距离左边是52像素...阅读全文

CSDN博客 2019-07-04 21:01:35 dbkmeteor

环境准备

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/youmingyu/article/details/53192714 公司让做一个小项目作为入职测试,简单的说就是实现WebRTC的android端互连。boss给提供了一个开源项目作为参考,这个项目是WebRTC的android客户端,可以实现android端连接PC端——在我动手之前我以为自己要建一栋房子,然而最后只是挂了个窗帘,不过至少知道了房子的构造O(∩_∩)O~ 环境准备 参考项目1:http...阅读全文

CSDN博客 2019-07-04 21:01:34 youmingyu

从一段代码谈起——浅谈JavaIO接口

本文首发于泊浮目的专栏:https://segmentfault.com/blog... 1.前言 前阵子休息天日常在寻找项目里不好的代码,看到了这样的一段代码: private Result sshSameExec(Session session, String cmd) { if (log.isDebugEnabled()) { log.debug("shell command: {}", cmd); } UserInfo ui = getUserInfo(); session.setUse...阅读全文

Segmentfault 2019-07-01 21:03:40 泊浮目

系统启动进程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014529755/article/details/51674249 系统启动进程 android设备的启动分为三个阶段:Boot Loader, Linux Kernel,Android 系统服务。Android系统实际上是运行在Linux Kernel之上的一系列系统服务进程。init进程是Android中被启动的第一个进程,PID = 0 。它通过解析init.rc脚本来构建出android...阅读全文

CSDN博客 2019-07-01 11:01:36 u014529755

Android Studio及Android SDK的下载安装与配置

Android Studio及Android SDK的下载安装与配置 1、从http://www.android-studio.org/ 下载android Studio及SDK 下载的都是免安装程序,解压后直接使用。 2、打开android studio,新建项目,配置代理服务器、sdk路径 到这里项目一般会编译不过去,报错找不到相应的SDK等等。 3、更新SDK 首先更改C:\Windows\System32\drivers\etc下面的hosts文件,增加两行: 203.208.40.73...阅读全文

CSDN博客 2019-07-01 11:01:35 wgyfreedom

Android Studio 3.0以下版本配置:

版权声明:本文为博主原创文章,转载请注明出处-支持原创。 https://blog.csdn.net/u013472738/article/details/73197702 前言: JetBrains在2010年首次推出Kotlin编程语言,并在次年将之开源。 目前在AndoridStudio的3.0 版本中已经可以直接支持使用Kotlin了。 而在刚刚结束不久的谷歌大会,谷歌宣布:将Kotlin语言作为安卓开发的一级编程语言。Kotlin由JetBrains公司开发,与Java 100%互通,...阅读全文

CSDN博客 2019-07-01 11:01:04 u013472738

Android #Android开发环境搭建

Android #Android开发环境搭建 1.下载:Google在国服的官网 https://developer.android.google.cn/index.html1.点击首页 “ 获取 Android Studio” 2.跳转以后等待网页加载完(左上角显示X则是未加载完)再点击绿色的“下载Android Studio” 会跳出选择框就成功了,如果跳转到页面下方的按钮,则代表网页未加载完成。 2.安装 点击安装后→安装配置里面选择custome 这样后面Android SDK才可以装作...阅读全文

CSDN博客 2019-06-29 15:01:33 weixin_34347651

1.下载

1.下载 百度搜索,百度会直接给出下载链接。 2.配套工具 androidSDK。是一个压缩包,解压后得到目录xxx。在studio中设置sdk目录=此目录xxx即可。注意绝对路径中不能含有空格。 3.avd调试 avd,android virtual device,安卓虚拟设备。 3.1常见错误 avd启动时有时会报错,硬件加速器不能用等。 答:需要下载一个驱动程序,名字与路径是这样的:android-sdk-windows\extras\intel\Hardware_Accelerated_...阅读全文

CSDN博客 2019-06-29 03:01:39 chuchus

Android Bluetooth

Android Bluetooth 一、Android Bluetooth现状 (1)Android2.2版 支持的蓝牙核心版本是Bluetooth 2.0 + EDR。 (2)Android 的蓝牙 使用了BlueZ协议栈,但只实现了 Handset/Handfree和A2DP/AVRCP等Profile。 (一些常用的Profile(如HID/DUN/SPP/OPP/FTP/PAN等)在现 在的Android2.2版中并没有实现。需要自己在Android中实现 Profile)。 (3)目前...阅读全文

CSDN博客 2019-06-28 21:01:34 iteye_13556

Android之android:launchMode

Android之android:launchMode 说明一下,大家看这个帖子之前对Task,有一定的了解。而且看完这个之后,最好再看看taskAffinity属性,因为在实际应用中他们一般是联合使用的。 在Android的中Activity有4种启动方式:"standard"、"singleTop"、"singleTask"、"singleInstance"。 下面就分轻重点讲讲这些启动方式。 1、standard启动方式 这种方式也是系统默认的。说的简单点,我们在使用startActivit...阅读全文

CSDN博客 2019-06-28 19:01:40 Caribbean_HY

Android Bluetooth

Android Bluetooth 一、Android Bluetooth现状(1)Android2.2版 支持的蓝牙核心版本是Bluetooth 2.0 + EDR。(2)Android 的蓝牙 使用了BlueZ协议栈,但只实现了Handset/Handfree和A2DP/AVRCP等Profile。(一些常用的Profile(如HID/DUN/SPP/OPP/FTP/PAN等)在现在的Android2.2版中并没有实现。需要自己在Android中实现Profile)。(3)目前版本(Andr...阅读全文

CSDN博客 2019-06-28 19:01:40 zmyde2010

Kotlin高级语法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ccw0054/article/details/79045933 Kotlin高级语法 委托 类委托 当一个类继承于另一个类或者实现某个接口,我们需要在该类中重写或者实现对应的方法,为了代码简练或者其他原因我们会用到委托的思想,也就是让别的类来帮助我们完成这些事情,在Kotlin中对委托进行了原生的支持,用by关键字实现。 //将Collection的方法委托给c对象完成 class Delegat...阅读全文

CSDN博客 2019-06-28 19:01:10 ccw0054

通过注解声明数组变量

原文链接是《What's New in Kotlin 1.2》,下面的译文节选了“其它的语言特性”部分(“Other Language Features”)通过注解声明数组变量从Kotlin1.2开始,允许通过注解声明数组参数这种语法,从而取代了arrayOf函数的数组声明方式。比如下面这样:@CacheConfig(cacheNames = ["books", "default"]) public class BookRepositoryImpl { // ... }可见新的数组参数声明语法依...阅读全文

CSDN博客 2019-06-28 19:01:07 aqi00