![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 79
叫我旺仔
凡有所相,皆是虚妄。
展开
-
Android ConstraintLayout的使用
ConstraintLayout是谷歌推出的一个新布局,字面意思是约束布局,距离发布已经有一段时间了,下面会有一个复杂布局的代码对比。 对于ConstraintLayout,有篇文章写了关于它的性能优势:解析ConstraintLayout的性能优势我们知道,当我们的布局越来越复杂的时候,所使用的嵌套就越来多,性能自然而然的就会有所下降,而ConstraintLayout恰恰就是为了...原创 2018-01-22 20:21:25 · 1244 阅读 · 0 评论 -
Kotlin学习(十七): 运算符重载
在前面写了关于集合和范围的内容,里面包括了一点运算符重载的内容,在这里我们来详细了解运算符重载的知识,内容参考《Kotlin实战》(Kotlin in Action)。什么是运算符重载?简单来说,就是Kotlin通过调用自己代码中定义特定的函数名的函数(成员函数或者扩展函数),并且用operator修饰符标记,来实现特定的语言结构,例如如果你在一个类上面定义了一个特定函数命名plus的函数,那么按照原创 2017-11-19 20:40:47 · 718 阅读 · 0 评论 -
Kotlin学习(十五): 解构声明(Destructuring Declarations)
Kotlin1.1.3发布,Kotlin 插件现在支持在编辑器的提示中显示推导的变量、函数和参数类型。默认情况下该功能是禁用的,可以在编辑器的设置中启用它。下面进入正文,有时候要获取一个对象的属性,会定义很多个变量,这样子就会很麻烦,而在Kotlin中有个很方便的用法,就是使用解构声明。创建变量在Java中创建多个变量Person person = new Person("person", 1);原创 2017-11-03 08:26:40 · 837 阅读 · 0 评论 -
Kotlin学习(七): 类和继承、接口与实现
本文是学习Kotlin的类和继承相关,嵌套类相关,接口相关。类Kotlin的类的声明与Java一样,使用class关键字class Invoice {}类的声明包含类名,类头(指定类型参数,主构造函数等等),以及类主体,用大括号包裹。类头和类体是可选的;如果没有类体可以省略大括号。class Empty构造函数Kotlin的类有两种构造函数,一种是主构造函数,一种是二级构造函数。 主构造函数是写原创 2017-10-08 18:05:47 · 1562 阅读 · 0 评论 -
Kotlin学习(十四): 类型别名(Type aliases)和注解(Annotations)
高阶函数,又称算子(运算符)或泛函,包含多于一个箭头的函数,高阶函数是至少满足下列一个条件的函数:1.接受一个或多个函数作为输入,2.输出一个函数。 在无类型Lambda 演算,所有函数都是高阶的;在有类型Lambda 演算(大多数函数式编程语言都从中演化而来)中,高阶函数一般是那些函数型别包含多于一个箭头的函数。在函数式编程中,返回另一个函数的高阶函数被称为Curry化的函数。 在很原创 2017-10-08 18:10:11 · 1993 阅读 · 0 评论 -
Kotlin学习(十三): 集合(Collections)和范围(Ranges)
高阶函数,又称算子(运算符)或泛函,包含多于一个箭头的函数,高阶函数是至少满足下列一个条件的函数:1.接受一个或多个函数作为输入,2.输出一个函数。 在无类型Lambda 演算,所有函数都是高阶的;在有类型Lambda 演算(大多数函数式编程语言都从中演化而来)中,高阶函数一般是那些函数型别包含多于一个箭头的函数。在函数式编程中,返回另一个函数的高阶函数被称为Curry化的函数。 在很原创 2017-10-08 18:09:36 · 606 阅读 · 0 评论 -
Kotlin学习(十二): 函数、高级函数和Lambda表达式
高阶函数,又称算子(运算符)或泛函,包含多于一个箭头的函数,高阶函数是至少满足下列一个条件的函数:1.接受一个或多个函数作为输入,2.输出一个函数。 在无类型Lambda 演算,所有函数都是高阶的;在有类型Lambda 演算(大多数函数式编程语言都从中演化而来)中,高阶函数一般是那些函数型别包含多于一个箭头的函数。在函数式编程中,返回另一个函数的高阶函数被称为Curry化的函数。 在很原创 2017-10-08 18:08:57 · 565 阅读 · 0 评论 -
Kotlin实战(二): 实现RecyclerView多种Item布局
前言RecyclerView出来很久了,可以说一出来就将ListView给比下去了,当然,Recyclerview有它的好,ListView的好,并不是说一定要用Recyclerview,最适用自己项目的才是最好的。在这里我们将用Kotlin来实现RecyclerView的多种item布局,和单个item布局,同时写一个通用的Adapter。使用先将写完的代码的使用方式展示一下:一种item布局cl原创 2017-10-08 18:08:18 · 4082 阅读 · 0 评论 -
Kotlin学习(十一): 泛型(Generics)
泛型,即“参数化类型”,顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。接下来学习Kotlin中的泛型,Kotlin的泛型为类型安全提供保证,相比与Java更安全。泛型在Java中经常会用到泛型:class Box<T>{ private T var ; }// 使用Bo原创 2017-10-08 18:07:32 · 484 阅读 · 0 评论 -
Xposed开发初体验
本篇文章具体是Xposed开发,如何安装Xposed需自行上网查找,本文同步更新于旺仔的个人博客,访问可能有点慢,多刷新几次。Xposed什么是Xposed呢? “Xposed是一个适用于Android的框架。基于这个框架开发的模块可以改变系统和app应用的行为,而不需要修改APK。这是一个很棒的特性,意味着Xposed模块可以不经过任何修改,安装在各种不同的ROM上。Xposed模块可以很容易原创 2017-10-12 17:24:52 · 574 阅读 · 0 评论 -
探究Exported属性对startActivity的影响
本文同步更新于旺仔的个人博客,访问可能有点慢,多刷新几次。缘由这几天想做一个点击跳转到TIM的扫一扫的Activity的功能,代码是这样的,就是普通的跳转Intent intent = new Intent();intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);ComponentName component = new ComponentName("c原创 2017-10-12 17:25:24 · 4029 阅读 · 0 评论 -
使用Xposed去除微博国际版的启动广告
本文同步更新于旺仔的个人博客,访问可能有点慢,多刷新几次。前面有篇文章已经介绍了如何创建Xposed模块的文章了,这篇就让我们来实现一个简单的去除启动广告的功能吧。起因为什么要是要去掉微博国际版的开屏广告呢,因为广告烦人啊,而且我打开微博的时间也是偶尔才会打开的,每次一打开就能看到广告,所以就想把这个开屏广告给删掉,奇怪的是,打开一次后,再关掉再打开是没有广告的,要隔一段时候才会出现广告,这个原因会原创 2017-10-12 17:25:57 · 7475 阅读 · 0 评论 -
ConstraintLayout中Chains和Guideline的使用
前面介绍了如何使用ConstraintLayout,在用ConstraintLayout的时候千万要运行一下,在手机上看看结果,因为有时候在AS上面看是没问题的,但是运行到手机上面还是会又不一样的效果的。 然后本文将来介绍ConstraintLayout中的Chain也就是链条,还有ConstraintLayout辅助线Guideline的使用。Chains链条是什么?简单说就是...原创 2018-02-26 15:30:14 · 14226 阅读 · 2 评论 -
Kotlin实战(三): 动手撸个玩Android客户端
玩Android鸿洋大神的玩Android网站。 本网站每天新增20~30篇优质文章,并加入到现有分类中,力求整理出一份优质而又详尽的知识体系,闲暇时间不妨上来学习下知识; 除此以外,并为大家提供平时开发过程中常用的工具以及常用的网址导航。可以在 https://github.com/hongyangAndroid/xueandroid项目中以issue的形式提出任何好的建议。接口由玩Andr原创 2018-01-01 00:36:01 · 2323 阅读 · 0 评论 -
Kotlin学习(十八): 委托模式(Delegate)和委托属性(Delegate Properties)
委托模式已经被证明是实现继承的一个很好的替代方式,在扩展一个基类并且重写方法时,基类就必须依赖子类的实现,当不断地修改的时候,基类就会失去当初的性质,Kotlin中就将类默认为final,确保不会被修改。有一种模式是装饰器模式,本质就是创建一个新类,实现与基类一样的接口,并且将类的实现作为一个字段保存,这样就能在基类不被修改就能直接修改基类的实例。但是这样的缺点是会造成很多的样板代码。class D原创 2017-11-26 20:50:10 · 7159 阅读 · 4 评论 -
Kotlin学习(十九): 属性自动生成方法所引发问题
在Kotlin中创建一个属性,如果是val,那么会自动生成getter方法,如果是var,那么会自动生成getter和setter方法。class MethodFoo() { var a: Int = 1 var b: Int = 2}生成的class内容public final class MethodFoo { private int a = 1; private原创 2017-12-04 11:00:58 · 4821 阅读 · 1 评论 -
Kotlin常见问题和代码
高阶函数,又称算子(运算符)或泛函,包含多于一个箭头的函数,高阶函数是至少满足下列一个条件的函数:1.接受一个或多个函数作为输入,2.输出一个函数。 在无类型Lambda 演算,所有函数都是高阶的;在有类型Lambda 演算(大多数函数式编程语言都从中演化而来)中,高阶函数一般是那些函数型别包含多于一个箭头的函数。在函数式编程中,返回另一个函数的高阶函数被称为Curry化的函数。 在很原创 2017-10-08 18:10:33 · 3376 阅读 · 0 评论 -
通过GitHub和Hexo来搭建自己的个人博客
搭建个人博客在我大学的时候建过一次,那时候是用新浪云和Wordpress搭建的,那时候新浪云服务是免费的,后来变收费,博客就没有了。之前便想着再弄个自己的博客出来,这几天就着手弄了起来。 看到很多人的个人博客是用github来当服务器,然后通过Hexo来搭建博客框架,那么新建个人博客也用这两个来搭建吧。本文同步更新于旺仔的个人博客,访问可能有点慢,多刷新几次。 GitHub主页创建仓库想必大家都原创 2017-10-12 17:24:20 · 6701 阅读 · 4 评论 -
Kotlin学习(十六): 关键字与操作符(Keywords and Operators)
本文同步更新于旺仔的个人博客,访问可能有点慢,多刷新几次。Kotlin中有一些常用的关键字和标识符,同时还有一些操作符和特殊符号,这些都是和Java有不一样的地方的,这里将他们介绍一下,方便记忆和回看。硬关键字(Hard Keywords)Kotlin中的硬关键字不能作为标识符package与Java一样,Kotlin的源文件同样以包声明开始的。package foo.barfun baz() {}原创 2017-11-03 08:24:23 · 3613 阅读 · 1 评论 -
使用Xposed实现QQ/TIM自动确认电脑扫一扫登录
缘由不知道大家有没有用过QQ/TIM登录的时候使用扫描二维码登录的功能呢?也就是登录界面的右下角那里有个二维码的按钮点击之后就会出现二维码然后用手机QQ/TIM打开扫一扫界面,扫了之后,会弹出允许登录的界面然后我们需要点击允许登录TIM/QQ,电脑端就登录成功了。但是每次登录都要点击允许登录,我觉得好麻烦,所以就实现了自动点击功能,这篇文章就是来介绍如何使用Xposed来实现自动点击。实践首先我们先原创 2017-10-16 17:17:29 · 6847 阅读 · 1 评论 -
Kotlin学习(十): 可见性修饰符和数据类
Java中有可见性修饰符(private…),而Kotlin中也是有这样的修饰符,但也有一些不一样,下面来学习Kotlin中的可见性修饰符(Visibility Modifiers)和数据类(Data Classes)的相关知识。可见性修饰符(Visibility Modifiers)Kotlin有四种可见性修饰符,分别是public、internal、protected和private,默认的修饰原创 2017-10-08 18:07:09 · 425 阅读 · 0 评论 -
Kotlin学习(九): 扩展(Extensions)和This表达式
扩展是Kotlin中特别强大的一个功能,如扩展函数,本文是学习Kotlin中的扩展(Extensions)和This表达式的相关知识。扩展(Extensions)在Java开发时,会经常将那些共用的方法写到一个Utils类,如FileUtils,StringUtils等等。很有名的java.util.Collections也是其中一员的,在使用的时候Collections.swap(list, Co原创 2017-10-08 18:06:50 · 584 阅读 · 0 评论 -
Kotlin学习(八): 对象表达式和声明(Object Expressions and Declarations)
2017年的Google I/O大会上谷歌宣布Kotlin正式成为Android的官方语言。下面我们来继续学习Kotlin中的对象表达式和声明(Object Expressions and Declarations)的相关知识。对象表达式和声明(Object Expressions and Declarations)在写代码的时候,会创建一个对当前类做轻微修改的对象,而不用重新声明一个子类,Kot原创 2017-10-08 18:06:24 · 337 阅读 · 0 评论 -
Android 隐藏和显示虚拟按键
虚拟按键原创 2016-11-18 11:06:33 · 1863 阅读 · 0 评论 -
Android AIDL相关
AIDL全称(Android Interface Definition Langague)原创 2016-11-18 11:17:53 · 391 阅读 · 0 评论 -
Android ListView相关
ListView原创 2016-11-18 11:08:58 · 428 阅读 · 0 评论 -
Android微信分享
Android微信分享需要注册开发者账号并且创建应用原创 2016-11-18 11:07:54 · 1095 阅读 · 0 评论 -
Android获取屏幕截图
屏幕截图原创 2016-11-18 11:06:03 · 543 阅读 · 0 评论 -
Android调用系统相册
Android调用系统相册系统相册原创 2016-11-18 11:05:24 · 617 阅读 · 0 评论 -
Android ADB 命令
Android ADB 命令ADBADB(Android Debug Bridge 调试桥)原创 2016-11-18 11:02:05 · 402 阅读 · 0 评论 -
Android调用Camera
Android调用Camera调用系统相机或者是具有相机功能的App调用系统相机原创 2016-11-18 10:52:24 · 519 阅读 · 0 评论 -
Android ButterKnife的使用
前言在写这篇文章之前,自己写了有两篇关于编写Android Studio插件的文章,在写的同时,也了解到了ButterKnife,所以抽时间来了解它。 下面是我之前关于Android Studio插件的文章,有兴趣的可以去看一下:自己编写Android Studio插件Android Studio插件GenerateFindViewById本篇文章所使用的ButterKnife的版本为8.4原创 2016-12-12 16:24:13 · 1006 阅读 · 0 评论 -
Android Studio逆向分析APK(Analyse APK)
Android Studio逆向分析APK(Analyse APK)前言 Android Studio升到2.0版本以后,有个很好的功能,就是可以直接逆向分析apk,查看到里面的内容。条件 Android Studio 版本为2.0以上Analyze APKBuild->Analyze APK 2.择一个apk 内容说明apk大小和下载大小 raw size是apk包的大小原创 2016-11-22 22:03:53 · 20744 阅读 · 2 评论 -
自己编写Android Studio插件
前言为何会自己写插件呢,原因有两个,一个是之前看到鸿神写了一篇学会编写Android Studio插件 别停留在用的程度了的博客,另一个是有些插件是不能满足自己的需求的,所有就需要自己来写;之前因为赶项目没时间,今天抽空就学习了下。可以看下一篇 Android Studio插件GenerateFindViewById 这篇博客是根据输入或者选中布局文件(如R.layout.activity_ma原创 2016-11-19 23:00:05 · 4788 阅读 · 14 评论 -
Kotlin实战(一): 写一个登录的Demo
前言如何安装Kotlin可以参考Kotlin学习(一): Kotlin插件安装这篇文章。demo说明该demo是使用Kotlin写的登录demo,使用MVP模式,里面用到了Retrofit+RxJava,然后用了Mob的登录Api接口作为登录和注册的判断,Mob提供了很多免费的接口。Activity直接将控件的id当成变量来使用 设置点击事件login.setOnClickListener(thi原创 2017-10-08 18:05:25 · 3443 阅读 · 1 评论 -
Kotlin学习(六): 包、控制流、返回与跳转
本文是学习Kotlin的包相关,控制流相关以及返回与跳转相关,与Java比较大的区别是Kotlin用when来替换掉Java的switch,写好简单,可以有各种类型值的判断,另外可以指定返回和跳转到指定标签的位置。包(Package)与Java一样,Kotlin的源文件同样以包声明开始的。package foo.barfun baz() {}class Goo {}// ...源文件的所有内容(如类原创 2017-10-08 18:03:56 · 545 阅读 · 0 评论 -
Kotlin学习(五): 惯用语法和代码风格(Idioms And Coding Conventions)
本文是学习Kotlin的惯用语法和代码风格,与Java的语法和代码风格有一些相同,也有一些不同。创建DTO’s(POJOs/POCOs)数据类(Creating DTOs (POJOs/POCOs))data class Customer(val name: String, val email: String)这里的Customer是数据类,在Kotlin中,会自动为Customer类生成以下方法原创 2017-10-08 18:02:58 · 653 阅读 · 0 评论 -
Kotlin学习(四): 基本类型(Basic Types)
本文是学习Kotlin的基本类型,Kotlin的基本类型与Java有一些不同,例如整数类型,Java是int表示,而Kotlin是Int表示;例如布尔类型,Java是boolean表示,而Kotlin是用Boolean表示。在 Kotlin 中,所有变量的成员方法和属性都是一个对象,我们可以在任何变量上调用成员函数和属性。 在本文中,将会讲解经常被使用的类型:Numbers,Characters,原创 2017-10-08 17:58:07 · 593 阅读 · 0 评论 -
Android Studio插件GenerateFindViewById
前言这个插件是为了方便自己写代码,至于如何编写Android Studio插件可以看我上一篇博客自己编写Android Studio插件。演示安装下载项目里面的GenerateFindViewById.jar包,然后打开AS的Plugins,点击Install plugin from disk…安装 打开AS的Plugins,点击Browse repositories…然后搜索GenerateFi原创 2016-12-05 12:04:06 · 10042 阅读 · 5 评论 -
Kotlin学习(二)基本语法
定义包名(Basic Syntax)与Java定义包名一样,在源文件的开头定义包名:package my.demoimport java.util.*// ... 包名和文件夹路径可以不一致:源文件可以放在项目的任意位置。定义函数(Defining functions)与Java定义函数的区别在于:Kotlin在定义函数的时候要加个fun关键词,函数的返回值前后不同,Java的在前面,如原创 2017-02-25 20:38:03 · 726 阅读 · 0 评论