android学习积
文章平均质量分 76
我的真心比不上你的娇喘
这个作者很懒,什么都没留下…
展开
-
Binder机制
Binder机制Binder是什么binder是什么?我们都在Activity通过getSystemService()方法获取系统的Service(例如:ActivityManagerService,WindowManagerService等),这些Activity一般都是客户端编写的,而系统的这些Service是属于服务端的。显然它们不会在同一进程(一般来说,一个APP单独在一个进程)。两个进程之间怎么通信?Binder就是两个进程通信的中间媒介。知识储备在讲解Binder前,我们先了解一些Lin原创 2022-01-29 20:57:06 · 3640 阅读 · 0 评论 -
Git教程合集
Git教程合集目录文章目录Git教程合集目录**分支 (branch)**什么是分支?分支合并master分支分支的运用Merge分支Topic分支分支的切换HEADstash1. git stash 把现有的修改藏起来2. 使用 ‘git stash save “desc”’ 把现有的修改藏起来,并且添加一个注释3. git stash list 查看所有藏起来的4. git stash pop --index {index} 删除 最近/指定 一个藏起来的,并还原回来代码5. git stash原创 2021-09-05 23:17:42 · 409 阅读 · 0 评论 -
Android 中 Canvas的功能
Android 中 Canvas的功能一. 如何在一屏幕上绘图三个概念:需要有画布Canvas需要有笔Paint需要有坐标系,画笔默认是在左上角(0,0)位置绘制的。我们可以通过移动画布坐标原点的形式,实现在不同位置绘制。1. 移动坐标原点 简单绘制一个图我们将画笔Canvas.translate(100,400)移动之后再进行绘制,这时画布的原点已经变化了。2. 视图坐标系理论上 Canvas 这张纸是没有边界的,但是我们的手机屏幕是有界的。我们可以理解为我们透原创 2021-07-28 16:31:54 · 1412 阅读 · 1 评论 -
Java基础函数 - Java中getCanonicalName(), getName(), getSimpleName()的区别
Java基础函数 - Java中getCanonicalName(), getName(), getSimpleName()的区别1. 背景最近在整理设计模式用例的时候,发现一些需要注意的java关键字2. 总结1、getCanonicalName() 是获取所传类从java语言规范定义的格式输出。2、getName() 是返回实体类型名称3、getSimpleName() 返回从源代码中返回实例的名称。【实例】 public class TestCanonicalNa原创 2021-07-12 09:38:55 · 885 阅读 · 0 评论 -
Java基础关键字 - Java中instanceof和isInstance区别详解
Java基础关键字 - Java中instanceof和isInstance区别详解1. 背景最近在整理设计模式用例的时候,发现一些需要注意的java关键字2. 一次性搞定instanceof和isInstanceinstanceof和isInstance长的非常像,用法也很类似,先看看这两个的用法:2.1 obj.instanceof(class)也就是说这个对象是不是这种类型,1.一个对象是本身类的一个对象2.一个对象是本身类父类(父类的父类)和接口(接口的接口)的一个对象原创 2021-07-12 09:20:48 · 355 阅读 · 0 评论 -
设计模式 - 代理模式
设计模式 - 代理模式代理模式简介定义:目标对象为其对象提供一种代理对象,其他对象通过代理对象来控制对目标对象的访问。代理模式分为动态代理和静态代理,动态代理是在静态代理的基础上同过在Proxy层增加反射获取真正的被代理的对象来实现的。1. 静态代理1.1 使用场景代理模式适合隔离底层业务逻辑具体细节的场景,比如说我们封装了一个图片加载的框架,但是这个框架会有可能会在将来的一个时间段过时,我们需要变更,但是变更前后整体的调用方式保存基本不变,可以考虑使用代理模式,同时目标对象无法直接访问或原创 2021-06-29 23:05:39 · 119 阅读 · 2 评论 -
Kotlin基础 - 第十三章导出可执行的程序
Kotlin基础 - 第十三章导出可执行的程序#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####Kotlin导出可执行的程序一、在用Kotlin写完程序后,怎么导出使他成为可执行的程序。首先需要添加两行代码 /**添加两行代码,指出导出的是程序*/ apply plugin: 'application' apply plug原创 2020-06-12 11:46:51 · 341 阅读 · 0 评论 -
Kotlin基础 - 第十二章尾递归优化
Kotlin基础 - 第十二章尾递归优化#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####函数递归必然会损失一定的函数性能,相对来说函数循环的效率就会相对高很多了,于是我们如果可以将我们的递归函数优化成循环调用,岂不是美滋滋,其实在某种情况下,Kotlin底层为我们实现了这种优化。尾递归:在函数表达式前面增加关键字 `` 编译器会原创 2020-06-09 17:02:36 · 213 阅读 · 0 评论 -
Kotlin基础 - 第十一章高阶函数
Kotlin基础 - 第十一章高阶函数#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####高阶函数以另一个函数作为参数或者返回值的函数被称为高阶函数。高阶函数可以把函数作为参数传递或者返回值返回的函数。既然函数对象作为数值进行传递那么就会有如何引用函数的问题。函数引用的三种方式:1. 直接双冒号的方式,引用的是包级别的函数;####原创 2020-06-09 17:01:23 · 296 阅读 · 0 评论 -
Kotlin基础 - 第十章抽象类和接口
Kotlin中的对象和接口#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####Kotlin的类和接口与Java的类和接口是有一定的区别的。Kotlin编译器能够生成有用的方法来避免冗余。比如将一个类声明为data类可以让编译器生成若干标准方法,同时也可以避免书写委托方法(委托模式kotlin原生支持)。面向对象编程语言(kotli原创 2020-06-09 16:59:58 · 292 阅读 · 0 评论 -
Kotlin基础 - 第九章控制流:if、when、for、while
Kotlin中的控制流:if、when、for、while#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####1. if条件控制if的常规使用和java没有任何的区别fun main(args: Array) {//条件控制if测试var x = 0if(x>0){println(“x 大于 0”)}else if原创 2020-06-09 16:59:19 · 325 阅读 · 0 评论 -
Kotlin基础 - 第八章运算符重载
kotlin中的运算符重载#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####内容参考《Kotlin实战》什么是运算符重载?简单来说,就是 Kotlin 通过调用自己代码中定义特定的函数名的函数(成员函数或者扩展函数),并且用 operator 修饰符标记,来实现特定的语言结构,例如如果你在一个类上面定义了一个特定函数命名 plus原创 2020-06-09 16:58:37 · 378 阅读 · 0 评论 -
Kotlin基础 - 第七章lambda表达式
kotlin中的lambda表达式#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####lambda即lambda表达式,简称lambda。本质上是可以传递给其它函数的一小段代码。有了lambda,可以轻松地把通用代码结构抽取成库函数。lambda最常见的用途是和集合一起配合。kotlin甚至还拥有带接收者的lambda,这是一种特殊的la原创 2020-06-09 16:58:06 · 716 阅读 · 0 评论 -
Kotlin基础 - 第六章函数
kotlin基础 - kotlin中的函数#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####函数为了是程序简洁明了,更具有逻辑性,我们通常的做法就是把相似的功能模块整合到一起,并设计成函数。函数是执行特定任务模块的代码,每个函数都有一个类型,你可以像使用Kotlin语言中其他类型一样使用函数类型,将函数作为参数传递给其他函数,或者将函原创 2020-06-09 16:57:33 · 596 阅读 · 0 评论 -
Kotlin基础 - 第五章Kotlin中的包
kotlin中的包kotlin 中的区间Kotlin的包使用方法和Java差不多,但有些不一样的地方1.一般用法 package com.dong.demo.ui; public class ClassA { }在另一个文件中引入 import com.dong.demo.ui.ClassA import com.dong.demo.ui.* ClassA一切都可访问Java中com.dong.demo.ui一定要与文件目录对应,ClassA .java在com/don原创 2020-06-09 16:57:07 · 486 阅读 · 1 评论 -
Kotlin基础 - 第四章object、面向对象、静态成员
Kotlin基础 - object、面向对象、静态成员#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####kotlin中的 objectobject是Kotlin中的一个重要的关键字,也是Java中没有的。object主要有以下三种使用场景:对象声明(Object Declaration)伴生对象(Companion Obje原创 2020-06-09 16:55:51 · 302 阅读 · 0 评论 -
Kotlin基础 - 第三章基础语法语法(下)
Kotlin中语法#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####和java程序一样,kotlin程序经过编译器编译完成之后也是成字节码文件,我们可以通过 Androidstudio的 Tools -> Kotlin -> Show Kotlin Bytecode 查看对应的字节码,当然还可以点击 Decompile转换原创 2020-06-09 16:55:22 · 324 阅读 · 0 评论 -
Kotlin基础 - 第二章基本数据类型和基础语法
kotlin基础 - 基本数据类型和基础语法#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####基本类型1. Boolen val aBoolean: Boolean = true val anOtherBoolean: Boolean = false println(aBoolean) println(a原创 2020-06-09 16:54:19 · 384 阅读 · 0 评论 -
Kotlin基础 - 第一章kotlin环境搭建
Kotlin基础学习第一章-环境搭建#### [kotlin官方文档 https://www.kotlincn.net/docs/reference/](https://www.kotlincn.net/docs/reference/) ####在java的基础上,谷歌推出了Kotlin语言,增加IDEA 或者是为什么我们要转用Kotlin简洁 大大减少样板代码的数量。安全 避免空指针异常等整个类的错误。互操作性 充分利用 JVM、Android 和浏览器的现有库。工具友好 可用原创 2020-06-09 16:51:40 · 681 阅读 · 1 评论 -
AndroidStudio 模板 Template 生成代码 - 代码模板好,下班回家早
AndroidStudio 模板 Template 生成代码 - 代码模板好,下班回家早android 中模板定义有3种1.代码片段模板 (Live Templates)2.单文件模板 (File and Code Templates)3.多文件模板( Templates 主要用于具有通用样式的activity、fragment、mvp、MVVM代码创建)今天我们...原创 2020-04-15 16:10:39 · 1771 阅读 · 0 评论 -
Android 完成打包编译流程
Android 打包签名配置和流程AndroidStudio 中打包是非常Very的方便的首先介绍 gradle Task的方式打包1. 创建apk签名文件(如果你已经创建过,请忽略这个步骤)菜单栏一次选中 build -> Generate Signed Bundle / APK... -> APK -> Create New -> 填写对应信息 然后确定,签...原创 2019-10-24 18:07:12 · 785 阅读 · 0 评论 -
一些不错的svg素材
https://www.html5tricks.com/tag/svg/page/5原创 2018-07-30 14:26:42 · 12177 阅读 · 0 评论 -
baseRecyclerViewAdapterHelper框架使用
baseRecyclerViewAdapterHelper框架使用一、上拉加载更多 上拉加载更多一直有坑没有解决,就是第一次加载数据会回调加载跟多方法,其次是上拉过程中加载跟多会被回调多次解决个方案 其实,仔细研读官方的方案会发现,在设置完成适配器之后应当默认调用, mAdapter.loadMoreEnd(true); mAdapter.loadMoreC...原创 2018-07-26 11:20:21 · 3134 阅读 · 2 评论 -
Android开发常用的版本控制工具和比较
版本控制工具现在主流的版本控制工具无非是SVN 和 Git SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。 但是由于git的出现SV...原创 2018-06-23 16:01:50 · 3619 阅读 · 0 评论 -
Android开发规范 —— 让你像大牛一样的高效开发
Android高效开发原创 2018-05-29 11:30:28 · 556 阅读 · 0 评论 -
Gson实现json转换
Gson将字符串转换成JsonObject和JsonArray以下均利用Gson来处理: 1.将bean转换成Json字符串:public static String beanToJSONString(Object bean) { return new Gson().toJson(bean);} 2.将Json字符串转换成对象:public stat...原创 2018-06-11 16:54:03 · 1476 阅读 · 0 评论 -
浅析android的内存泄漏
Android内存优化一、浅析Android开发中常见的内存泄漏首先我们来解释下两个名词:内存泄漏 当一个对象在程序执行过后已经不需要再使用了,但是有其他的对象还持有该对象的引用,以致该对象不能被GC回收,那么这个对象会一直占用内存,从而导致该内存不可用,这种本该被GC回收(不再需要用了)而又不能被回收(被其他对象持有引用),以致停留在堆内存中的对象就造成了内存泄露....原创 2018-04-10 09:48:33 · 197 阅读 · 0 评论 -
Java 中 Emoji 的正则表达式
Java 中 Emoji 的正则表达式查看原文:Android EditText过滤换行符,回车符和空白符,以及过滤表情一、emoji 的范围查阅维基百科中 emoji 的说明 1.杂项符号及图形一共有768个字符 ,范围为: U+1F300 ~ U+1F5FF,在 Java 中正则表达式为:"[\\uD83C\\uDF00-\\uD83D\\uDDFF]"2. 增补符号及...原创 2018-10-23 15:09:49 · 3676 阅读 · 0 评论 -
git解决error: The following untracked working tree files would be overwritten by checkout
git解决error: The following untracked working tree files would be overwritten by checkout在IDEA中进行分支切换时,出现如此错误,导致无法正常切换:error: The following untracked working tree files would be overwritten by checkout...原创 2019-07-01 13:54:48 · 35662 阅读 · 9 评论 -
Android混淆规则介绍
Android混淆规则介绍写在前面的话APP上线推广,免不得是需要混淆加固的,况且劳动成果不易又会有谁希望自己的APP被破解抄袭呢。鉴于此方显本片文章的通用型和重要意义。混淆简介Android代码混淆是一种应用源代码保护技术,用来防止别人对apk进行逆向分析;从Android2.3开始,Google就在SDK中加入了ProGuard的工具,使用它来进行代码的混淆。ProGuard是一个...原创 2019-04-24 16:00:04 · 8824 阅读 · 0 评论 -
android 进程间的数据传递
android进程间通信 - IPC定义多进程Android应用中使用多进程只有一个办法(用NDK的fork来做除外),就是在AndroidManifest.xml中声明组件时,用android:process属性来指定。进程的指定分为3种形式,分别是:当用户不指定process属性,则默认运行在主进程中,主进程名字为包名。android:process = “:remote” ...原创 2019-04-17 10:58:55 · 2136 阅读 · 0 评论 -
怎样设计出一个起飞的Token
怎样设计出一个起飞的Token==最近发现网络上一篇不错的文章,故转载以便更多的人可以看到=不久前,我在在前后端分离实践中提到了基于 Token 的认证,现在我们稍稍深入一些。通常情况下,我们在讨论某个技术的时候,都是从问题开始。那么第一个问题:为什么要用 Token?而要回答这个问题很简单——因为它能解决问题!可以解决哪些问题呢?Token 完全由应用管理,所以它可以避开同源策...原创 2019-04-19 10:22:32 · 796 阅读 · 0 评论 -
Android 你不可不知的对象序列化 Serializable和Parcelable
Android 你不可不知的对象序列化 Serializable和Parcelable目录结构1. 序列化的目的2. Android中序列化的两种方式Parcelable与Serializable3. Parcelable与Serializable的性能比较4. Parcelable与Serializable使用场景5. Serializable接口实现序列化6. Parcelab...原创 2019-04-16 16:46:49 · 810 阅读 · 0 评论 -
使用github搭建不限流量的图片床
使用github 搭建不限流量的图片床今天突然意识到图展这个国内的图床极不靠谱,国内的这些免费服务不知道什么时候就会关闭,到时候就欲哭无泪了。于是又去找图床,最后还是意识到GitHub最靠谱,还是用GitHub做图床吧。使用GitHub作为图片床步骤相当简单1. 新建一个 `repository`。github地址 https://github.com/2.将创建好的仓库克隆到...原创 2019-03-22 14:52:52 · 1410 阅读 · 2 评论 -
流行适配方案介绍
适配方案网上找到一个比较相近的主流适配方案介绍https://blog.csdn.net/Px01Ih8/article/details/83965427原创 2018-12-18 17:59:47 · 294 阅读 · 0 评论 -
Android Stduiomoudle命名失败解决办法
Android studio 命名失败解决办法( can’t rename root module报错解决方案)在修改Android Studio 中 project的名字时 ,提示 “can’t rename root module”。这是因为Android Studio只能修改根目录内的所有文件,要修改project根目录名字,只能关闭Android Studio 在操作系统中修改文件夹名...原创 2018-11-18 21:57:13 · 569 阅读 · 0 评论 -
一些比较不错的项目经验和框架积累---持续更新
记录日常开发中不错的项目经验1. SmartTool 项目上线前的日志工具类描述:开发过程中,通过日志,AS等工具查看网络,异常等信息总是感觉不太方便,于是萌发了开发个更好用的工具的想法。要能简单接入,要调试信息能清晰的可视化展示,要交互容易,要页面美观…..于是开始了整理需求,切图,编码……https://gold.xitu.io/entry/5878863361ff4b0065e778b7原创 2018-01-23 15:25:07 · 2112 阅读 · 0 评论