- 博客(47)
- 资源 (9)
- 收藏
- 关注
原创 Android AOP 工具Tenseiga来啦
前言:因为最近工作需要用到AOP技术,如是在网上搜索已经有的AOP框架,找到了lancet、booster和ByteX。其中lancet比较符合我的要求,但是使用中发现了2个问题所以放弃了。
2022-07-07 18:29:05 873 1
原创 记录一下面试考题二(Ap性能优化,Activity、Window和View,TLS1.1,TLS1.2)
1,APP性能优化APK瘦身将图片转换为 webp 格式WebP是谷歌提供的一种支持有损压缩和无损压缩的图片文件格式,而且可以提供比JPEG或PNG更好的压缩。在Android 4.0(API level 14)中支持有损的WebP图像,在Android 4.3(API level 18)和更高版本中支持无损和透明的WebP图像。除去多语言android{ ... defaultConfig{ ... //只保留英语 resC
2020-05-18 22:12:32 465
原创 记录一下面试考题一(组件化,ListView和RecyleView区别,App启动,Binder)
1,组件化和ARouter原理组件化定义:由若干独立的子模块,组合成一个整体,降低模块间的耦合,这些子模块在补足一定的条件下,都可独立运行。主模块也不会因为缺少任意子模块而无法运行。组件之间可以灵活的组建。这里面有一个主要的问题就是组件之间的通信和页面跳转。通信原理总所周知,Android提供了很多不同的信息的传递方式,比如在四大组件中本地广播、进程间的AIDL、匿名间的内存共享、Intent Bundle传递等等,那么在这么多传递方式,哪种类型是比较适合组件与组件直接的传递呢。1、本.
2020-05-17 16:54:48 516
原创 Android的MVVM架构的单Activity应用实践
前言谈Android架构大家很容易想到MVC、MVP和MVVM。1、MVC首先分析一下上面各层之前对应的Android代码,layout.xml里面的xml文件就对应于MVC的view层,里面都是一些view的布局代码,而各种Javabean,还有一些类似repository类就对应于model层,至于controller层嘛,当然就是各种activity。理论上应该是这么分,但...
2019-10-30 18:09:57 3343
原创 Kotlin协程(5)Flow
0,引子看下面的例子:fun fooAsync(p: Params): CompletableFuture<Value> = CompletableFuture.supplyAsync { bar(p) } 可以使用Future来获取需要长时间运行的异步返回的值。当调用fooAsync(p)时,它会承诺将来会提供一个值,并且后台会运行一个操作栏来计算该值。现...
2019-09-22 02:52:30 8268 1
原创 Kotlin协程作用域(4)
CoroutineScope:public interface CoroutineScope { public val coroutineContext: CoroutineContext}这里先把这个方法的注释文档放过来:定义新协程的范围。每个协程构建器都是CoroutineScope的扩展,并继承其coroutineContext以自动传播上下文元素和取消。获取范...
2019-09-18 23:07:58 2151
原创 Kotlin协程挂起(3)
协程的挂起是个很重要也比较难懂的概念。从协程的启动开始讲起。 @Test fun 测试协程启动() { GlobalScope.launch(start = CoroutineStart.DEFAULT) 协程启动的地方@ { val 挂起方法的值 = 挂起方法("测试") println(挂...
2019-09-17 19:02:21 1526 1
原创 Kotlin协程启动(2)
在说协程启动之前来看看线程启动的代码: Thread { println("线程启动") }.start()是不是和协程的启动很像: GlobalScope.launch { println("test continuation start") }其实很多时候都可以用线程的特性来理解协程。再...
2019-09-10 22:11:07 453
原创 Kotlin协程简单介绍(1)
协程的定义:Coroutinesarecomputer programcomponents that generalizesubroutinesfornon-preemptive multitasking, by allowing execution to be suspended and resumed. Coroutines are well-suited for imple...
2019-09-08 18:38:13 417
原创 一个效果不错的ViewPager
公司的项目想要一个这样效果的ViewPager展示1、第一页和最后一页带有弹性效果2、ViewPager底部图片随着页面滑动切换3、ViewPager页面上的2个图片一个水平切换一个45角切换这个效果如果简单的用原生的ViewPager实现肯定是解决不了的。如果是原生的ViewPager,实现效果如下:很明显这不是我需要的效果。第一页和最后一页带有弹性效果这...
2019-03-08 19:18:17 224
原创 一个带展开按钮的TextView控件
网上找了很多三方的实现但是都不是我想要的效果或者实现比较复杂,然后就自己写了一个。就这种效果其实就是很轻量级的一个实现。首先看我实现的第一个版本。public class ExpandTextView extends AppCompatTextView { /** * 的右侧文字Drawable */ private TextDrawable...
2019-03-05 18:03:42 599
原创 个人主页图片下拉放大效果
先看下效果:个人主页的图片展示可以随着用户的下拉而被放大。那么这个是怎么实现的呢?其实实现方式很简单AppBarLayout+CollapsingToolbarLayout+Toolbar+Behavior。那难点是那么呢?难点是个支持库版本里面AppBarLayout的实现效果是不一样的。我项目用的支持包是“27.1.1”版本,放大和缩小的效果有卡顿,有时候放大了就不缩小了。...
2019-03-05 17:39:14 2068 1
转载 ServiceManger启动与获取
启动过程ServiceManager是由init进程通过解析init.rc文件而创建的,其所对应的可执行程序/system/bin/servicemanager,所对应的源文件是service_manager.c,进程名为/system/bin/servicemanager。service_manager.cint main(int argc, char **argv) { ...
2019-02-19 10:33:57 310
转载 Binder跨进程通讯实例
图解:发起端线程向Binder Driver发起binder ioctl请求后, 便采用环不断talkWithDriver,此时该线程处于阻塞状态, 直到收到如下BR_XXX命令才会结束该过程. BR_TRANSACTION_COMPLETE: oneway模式下,收到该命令则退出 BR_REPLY: 非oneway模式下,收到该命令才退出; BR_DEAD_REPLY...
2019-02-19 10:33:43 566
转载 Binder驱动逻辑
Binder驱动:所有的用户控件方法都会经过系统调用对应到binder驱动方法,如: open-> __open() -> binder_open() binder_initstatic int __init binder_init(void){ int ret; //创建名为binder的工作队列 binder_deferred_wor...
2019-02-19 10:32:57 217
原创 Android的Handler机制详解3_Looper.looper()不会卡死主线程
这个问题其实已经在知乎有大神回答了:Android中为什么主线程不会因为Looper.loop()里的死循环卡死? public static void main(String[] args) { ... Looper.prepareMainLooper(); ActivityThread thread = new ActivityThread();...
2018-05-27 17:43:42 2432
原创 Android的Handler机制详解1_framework
Handler消息机制是Android的2打消息机制之一,另一个是Binder IPC机制。一、java层1,组成Message:消息分为硬件产生的消息(如按钮、触摸)和软件生成的消息;(持有一个Handler(target)引用)MessageQueue:消息队列的主要功能向消息池投递消息(MessageQueue.enqueueMessage)和取走消息池的消息(MessageQueue.ne...
2018-05-24 12:06:30 730
原创 一个仿微信但是样式更加灵活的密码框控件
首先看看效果:我为它的很多属性都开放了接口,可以根据自己的需要自由修改。效果看了,接下谈谈它是怎么实现的。主要是思路可以由下图来表示:控件是继承于系统控件TextView,然后重写onDraw(Canvas),这样可以减少很多麻烦。根据图片的显示顺序,首先是绘制黑色的底: /** * 绘制边框,先绘制一整块区域 */ private void drawBoarder(C...
2018-05-11 18:00:56 1018
原创 用于过滤aar中冲突类(class)和so库的脚本,也可以用来过滤jar中冲突class
需求产生的原因,有时候我们接入三方包的时候,会出现类冲突,这个时候我们就想能不能把三方包中的冲突类过滤掉,不参与编译。网上百度,google都没有找到一个好的解决方案,然后自己动手丰衣足食。灵感来源:Configuring Multi-Project Builds,创建 Android 库AAR库的Class和SO文件过滤将aar库导入项目的方式有2种:1,android{...
2018-04-27 18:13:26 11483 4
原创 Dialog,AlertDialog和DialogFragment
Dialog,AlertDialog和DialogFragment区别这几天做项目突然想到一个问题我们常用的Dialog,AlertDialog和DialogFragment到底有什么区别。Dialog文档地址:https://developer.android.google.cn/reference/android/app/Dialog.htmlAletDialog文档地址:https://de...
2018-04-10 18:11:52 4055
转载 类图学习,所有资料整理源于网络
基本概念:类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。 类图的3个基本组件:类名、属性、方法。 属性和方法之前可附加的可见性修饰符:加号(+)表示public;减号(-)表示private;井号(#)表示p
2017-08-29 11:19:44 421
原创 发布开源Library到JCenter
发布自己的Library到Jcenter详解。如果你在https://bintray.com/signup这个网站上注册的账号那就尴尬了。
2017-04-26 12:20:17 1519
原创 java线程池的简单介绍与使用
一、介绍线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程...
2017-03-03 13:24:19 284
原创 java对日期时间的处理
公司在做im的时候碰到了这么一个问题:服务器返回的时间是UTC格式的2017-01-05T02:48:52.746Z。而本地的时区是GMT+8.所以我需要对时间进行转化。这里对时区进行简单的介绍一下,便于下面的理解:整个地球分为二十四时区,每个时区都有自己的本地时间,时区差东为正,西为负。在此,把东八区时区差记为 +0800。UTC + 时区差 = 本地时间
2017-01-05 10:49:43 1175
原创 java RSA分块加密尝试(仅仅做记录,可作为参考)
我们都知道加密算法输入和输出是有限制。输入的大小可以用:cipher.getBlockSize()得到输出的大小可以用:cipher.getOutputSize(blockSize)得到当我们加密一个很长的明文时如果不采用分块加密就会报错(javax.crypto.IllegalBlockSizeException)思想:将明文变成字节数组然后用blockSize分块,然后分别对每
2016-12-09 12:48:53 1301
原创 RxJava学习篇之三:操作符的讲解(2)-Retry-Repeat
今天RxJava操作的符的主角就是Repeat和RetryrepeatWhen,retryWhen,repear,retry
2016-12-08 11:09:22 2491
原创 java 加解密算法
包含java加解密算法(base64,des,3des,aes,pbe,dh,rsa,ElGamal) 包含java摘要算法(md2,md4,md5,sha1,sha2((SHA-224,SHA-256, SHA-384,SHA-512)),mac) 包含签名算法(rsa,dsa,ecdsa)
2016-11-25 09:54:39 2654
原创 Html.fromHtml()中Html.TagHandler()的使用
Android,TextView,Html,Html.fromHtml,Tag.Handler,XMLReader
2016-11-23 09:42:12 10673 5
原创 Java IO 模型
Java IO 模型BIO:JDK1.4之前我们使用的都是BIO阻塞我们的读写方法,改进阻塞到线程来提高性能,但是对于线程的开销本来就是性能的浪费。NIO:JDK1.4 linux多路复用技术(select模式)实现IO事件的轮询方式:同步非阻塞的模式。这种方式目前是主流的网络通信模式。Mina,netty MIna2 netty5.0 ---网络通信框架,比我们直接写nio容AIO(NIO2):JDK1.7实现真正的异步AIO,学习linux的 epoll模式,aio使用的比较少
2016-11-10 11:55:37 664
原创 AS多渠道打包
在讲AS多渠道打包之前,先将一丢丢AS使用的小知识点,防止自己忘记:AS调试的快捷键:F7(进入方法),F8(按行执行),F9(调到一下个断点)还有一个Evaluate Expression我觉得有必要提一下,因为我自己经常用这个:关于ide的外观的一些设置:
2016-10-31 11:38:04 585
原创 RxJava学习篇之一:基础Observable,Observer,Single,Subject,Scheduler
本文介绍Rxjava中的基础Observable,Observer,Single,Subject,Scheduler基础知识。实例演示了每个的用法。
2016-09-05 11:43:25 4018
原创 Android视图的顶部悬停的实现
项目中经常会用到,一个View悬停到顶部的情况。这里借鉴网上的方式给出来2中实现方式。1,利用ScrollView+ListView实现2,利用ListView增加头部实现。然后简单的分析了一下它们的优缺。
2016-08-26 10:58:06 4172
原创 随着然键盘显示与消失的popuwindow
最近项目中碰到了这么个需求,就是一个popwindow要随着软件键盘弹出与消失,首先看一下完成后的效果。软键盘的显示与隐藏的监听
2016-08-16 14:22:16 1353
转载 浅谈 PopupWindow 在 Android 开发中的使用
在Android中弹出式菜单(以下称弹窗)是使用十分广泛一种菜单呈现的方式,弹窗为用户交互提供了便利。关于弹窗的实现大致有以下两种方式AlertDialog和PopupWindow,当然网上也有使用Activity并配合Dialog主题的方式实现弹窗,有兴趣的朋友也可以去研究一下。对于AlertDialog和PopupWindow两者的最主要区别也有以下两点:1 、位置是否固定。 Aler
2016-06-24 11:21:24 505
PersonalHederZoomIn-master.zip
2019-06-15
java8的无政策限制权限文件Unlimited Strength Jurisdiction Policy Files
2016-11-28
java 加解密算法,摘要算法和数字签名算法
2016-11-28
java8的无政策限制权限文件(Unlimited Strength Jurisdiction Policy Files)
2016-11-28
java 加解密算法(包含摘要算法和数字签名)
2016-11-28
Android实现View顶部悬停的方法
2016-09-03
Android视图的顶部悬停的实现
2016-09-03
随着然键盘显示与消失的popuwindow
2016-08-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人