Android
shenglong0210
大脑风暴
展开
-
Paint详解
Paint的API大致可以分为4类:颜色 效果 drawText()相关 初始化颜色canvas绘制的内容有三层对颜色的处理1.1基本颜色像素的基本颜色,根据绘制内容的不同而有不同的控制方式,Canvas的颜色填充类方法drawColor/RGB/ARGB()的颜色,是直接写在方法参数里,通过参数来设置的;drawBitmap()的颜色,是直接由Bitmap对象来提供...原创 2019-03-20 11:22:17 · 461 阅读 · 0 评论 -
AIDL生成文件的解析
AIDL生成Java文件的解析上一篇说了kotlin如何使用AIDL进行跨进程通信,这篇文章是对上一篇文章的补充和深入,主要研究依赖AIDL生成的Java文件写了什么。先附上之前的实体类文件Personpackage com.example.com.testapplication.bean.kotlinimport android.annotation.SuppressLintimp...原创 2019-04-10 16:35:01 · 1253 阅读 · 0 评论 -
Binder机制
Binder机制目录Binder是什么Binder通信机制Binder驱动Service ManagerBinder机制跨进程通信流程总结先给出Android中的Binder的工作机制图我们在上一篇文章讲解了AIDL生成的Java文件,我们知道AIDL的实现是依赖与Binder机制的,此篇就简单讲解Binder机制。Binder是什么要说Binder就不得不提到L...原创 2019-04-15 16:14:00 · 171 阅读 · 0 评论 -
Android中的IPC方式
Android中的IPCBundle四大组件中的三大组件(Activity,Service,Broadcast)都是支持在Intent中传递Bundle数据的,由于Bundle实现了Parcelable接口,所以方便在不同进程间传输。基于这一点,当我们在一个进程中启动了另一个进程的Activity、Service和Broadcast,我们就可以在Bundle中附加需要传输的数据并通过Inten...原创 2019-04-15 16:14:17 · 380 阅读 · 0 评论 -
序列化
Android序列化之 子类与父类目录Java序列化之SerializableJava语言实现Serializablekotlin语言实现SerializableAndroid序列化之parcelableJava语言实现ParceableKotlin语言实现Parcelable# Java序列化之Serializable注意事项:序列化时,只对对象的状态进行保...原创 2019-04-15 16:14:38 · 551 阅读 · 0 评论 -
Activity
再谈Activity目录生命周期正常生命周期非正常生命周期Activity的启动模式Activity的LaunchModeActivity的FlagsIntentFilter的匹配规则附加生命周期正常的生命周期onCreate()->onStart()->onResume()->onPause()->onStop()->onDe...原创 2019-05-05 14:24:58 · 343 阅读 · 0 评论 -
Kotlin学习笔记
Kotlin学习目录Kotlin语言基础Kotlin流程控制语句Kotlin操作符重载与中缀表示法Kotlin扩展函数和扩展属性Kotlin指针安全Kotlin类型系统Kotlin面向对象编程Kotlin委托Kotlin泛型Kotlin函数式Kotlin与Java互操作Kotlin协程...原创 2019-05-10 17:56:13 · 541 阅读 · 0 评论 -
ConstraintLayout约束布局
ConstraintLayout约束布局目录前言为什么用ConstraintLayout如何使用ConstraintLayout添加依赖相对定位角度定位边距居中和偏移尺寸约束链辅助工具OptimizerBarrierGroupPlaceholderGuideline总结前言ConstraintLayout是Google在API9的时候推出的新...原创 2019-05-17 18:39:03 · 131235 阅读 · 0 评论 -
ConstraintLayout约束布局属性
ConstraintLayout属性相对定位layout_constraintLeft_toLeftOflayout_constraintLeft_toRightOflayout_constraintRight_toLeftOflayout_constraintRight_toRightOflayout_constraintTop_toTopOflayout_constraintTo...原创 2019-05-17 18:39:23 · 980 阅读 · 0 评论 -
算法(冒泡排序)
冒泡排序冒泡排序是我们在做排序时很容易使用到的一种排序方法,简单的冒泡排序是这样的//从大向小进行排序,即从后向前进行排序 static void SimpleBubbleSort(int arr[]) { int temp = 0; //外部从0--length-1,内部从0到length-1-i,因为内部的比较是比较arr[j]与arr[j+1]的大...原创 2019-05-17 18:39:47 · 174 阅读 · 0 评论 -
ConstraintLayout的可视化布局工具
ConstraintLayout可视化布局工具开始下面我们开始用边学边练的方式来进行学习,首先打开你的Android Studio,并新建一个ConstraintLayoutTest项目。另外,确保你的Android Studio是2.2或以上版本。为了要使用ConstraintLayout,我们需要在app/build.gradle文件中添加ConstraintLayout的依赖,如下所示...转载 2019-05-17 19:57:47 · 721 阅读 · 0 评论 -
AIDL生成文件的解析
AIDL生成Java文件的解析上一篇说了kotlin如何使用AIDL进行跨进程通信,这篇文章是对上一篇文章的补充和深入,主要研究依赖AIDL生成的Java文件写了什么。先附上之前的实体类文件Personpackage com.example.com.testapplication.bean.kotlinimport android.annotation.SuppressLintimp...原创 2019-04-04 14:26:30 · 311 阅读 · 0 评论 -
Android AIDL使用
Android kotlin语言AIDL使用AIDL作为Android的一个IPC工具,可以用于进程间通信,进程间通信不仅是不同应用间也可以是同一个应用的不同进程间。Java语言使用AIDL的文档网上有太多,这里不以Java为例,使用Kotlin为例进行讲解。前言AIDL英文全写为(Android Interface Definition Language)直译为android接口定义语言。...原创 2019-03-29 14:23:03 · 1280 阅读 · 0 评论 -
ViewPager懒加载与Fragment懒加载
#ViewPager懒加载与Fragment懒加载##什么是懒加载懒加载是说白了就是延迟加载,对于数据和UI就是在需要的时候再加载展示给用户,什么是需要的时候对于UI来说就是要展示这个UI给用户的时候,在ViewPager与Fragment结合使用的时候就是在Fragment为当前要展示的界面时就是需要的时候再此也说一下预加载的概念,预加载就是在当前并不需要之后的某个时间需要的加载模式,常用...原创 2019-03-13 14:48:04 · 622 阅读 · 0 评论 -
Android权限
6.0之前(APi<23)google原生为:只要manifest中注册了权限,用户安装后就默认授予了所声明的权限。中国制造:用户安装应用后可以取消权限的授予解决办法:1.在使用部分权限时进行权限查询,查询所需权限是否仍是授予状态2.进行错误抓取,保证程序活跃,进行错误处理,包括try,catch,检查返回数据6.0之后(API>=23)google原生与中...原创 2019-03-13 15:14:53 · 231 阅读 · 0 评论 -
Android安全机制概述
Android安全机制概述1.Android安全机制概述Android是一个权限分离的系统。这是利用Linux已有的权限管理机制,通过为没 一个Application分配不同的uid和gid,从而使得不同的Application之间的私有数据和访问(native以及java层通过这种sandbox机制,都可以)达到隔离的目的。与此同时,Android还在此基础上进行扩展,提供了permis...转载 2019-03-13 15:15:23 · 723 阅读 · 0 评论 -
避坑-进攻01
工具(utils) Linkify.addLinks()这个类可以方便的为文本添加超链接 ThumbnailUtils用来处理缩略图相关的操作 TextUtils能胜任绝大多数的字符串处理工作,包括: public static boolean isEmpty(@Nullable CharSequence str)判断字符串非null且非空 public static Ch...原创 2019-03-13 15:17:02 · 303 阅读 · 0 评论 -
杀不死的进程
系统广播唤醒应用,比如手机开机,网络切换等 接入第三方SDK唤醒应用,比如接入微信SDK会唤醒微信 免杀白名单,比如360免杀白名单,MIUI系统免杀白名单 全家桶,应用之间互相唤醒,比如百度系,阿里系应用 两个Service互相唤醒(这个就别想了,不靠谱) 使用Timer定时器(一样不靠谱)如上文所说,无论应用怎么挣扎,当处于不可见进程的情况下随时都有可能被杀死。所以使用前台进程是最...原创 2019-03-13 15:17:31 · 472 阅读 · 0 评论 -
注解详解
之前也敲过几次关于注解的代码,但是奈何又忘了,故此写一篇文章来个身体记忆法。作为很多牛逼的AOP框架的重要组成部分,注解被应用的已经不要再多了,现流行的DataBinding,dagger2,EventBus全是AOP理念下的产物,笔者从接触AOP理念到现在已经有了2年的时间,记得第一次是刚毕业在一个牛逼的全栈工程师手下讨生活,当时读书之余问了大牛一句,现在学什么好啊,大牛直接就给我了一个AO...原创 2019-03-13 15:19:00 · 187 阅读 · 0 评论 -
绘制优化工具
Profile GPU RenderingAndroid手机自带的功能,可以大概的观测逻辑处理、命令执行、图片绘制、测量和绘制视图列表、执行onMeasure与onLayout、执行动画、处理输入事件的时间Systrace可以在DDMS、命令行、代码(TraceCompat)中使用Systrace、可以使用Chrome分析Systrace输出的trace.html文件,可以看到各...原创 2019-03-13 15:19:54 · 164 阅读 · 0 评论 -
Fragment整理
基本概念Fragment,简称碎片,是Android3.0(API 11)提出的,为了兼容低版本,support-V4库中也开发了一套Fragment API,最低兼容Android 1.6Fragment是依赖于Activity的,不能独立存在的 一个Activity中可以有多个Fragment 一个Fragment可以被多个Activity重用 Fragment有自己的声明周期,...原创 2019-03-13 15:21:54 · 354 阅读 · 0 评论 -
ViewPager类源码详解
getItemPosition()判断一项的位置是否改变(如果单项的视图需要改变,必须重写此函数,否则数据源的改变不会反映到Viewpager中)此处以support-compat-27.1.1为标准进行源码分析ViewPager类是单纯作为适配器模式的View存在,拥有适配器模式的View的一般原则,将View的添加与删除交给适配器进行,需要显示的Item的个数与数据源全部由适配器...原创 2019-03-13 15:23:06 · 609 阅读 · 0 评论 -
分散对齐
TextView分散对齐(左右对齐)今天在做Android TextView实现左右对齐(分散对齐)排版,查了网上的资料,国内大部分都没有深究,有一款可以实现分散对齐的开源对齐TextView还是通过自定义控件重写onDraw方法实现的,达不到我们的要求。但是在一个文章中找到了思路,虽然原文上面的代码效率低,并且无法正常使用,哈哈。本人代码远程连接以下是代码/*** 使用字符串间添加空...原创 2019-03-22 13:54:55 · 799 阅读 · 0 评论 -
对Activity 切换过渡动画的理解
对Activity 切换过渡动画的理解以自定义主题实现的切换过渡动画为例网上有很多讲Activity的切换过渡动画的,按我一惯的原则是不会重复造轮子,但是深入的看了看网上的大部分文章,都讲得云里雾里 ,让人不明所以,会误导很多人。自定义的动画主题,一般都是4个属性,activityOpenEnterAnimation,activityOpenExitAnimation,activityClo...原创 2019-08-01 14:10:12 · 315 阅读 · 0 评论