自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (9)
  • 收藏
  • 关注

原创 Android AOP 工具Tenseiga来啦

​前言:因为最近工作需要用到AOP技术,如是在网上搜索已经有的AOP框架,找到了lancet、booster和ByteX。其中lancet比较符合我的要求,但是使用中发现了2个问题所以放弃了。​

2022-07-07 18:29:05 766 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 426

原创 记录一下面试考题一(组件化,ListView和RecyleView区别,App启动,Binder)

1,组件化和ARouter原理组件化定义:由若干独立的子模块,组合成一个整体,降低模块间的耦合,这些子模块在补足一定的条件下,都可独立运行。主模块也不会因为缺少任意子模块而无法运行。组件之间可以灵活的组建。这里面有一个主要的问题就是组件之间的通信和页面跳转。通信原理总所周知,Android提供了很多不同的信息的传递方式,比如在四大组件中本地广播、进程间的AIDL、匿名间的内存共享、Intent Bundle传递等等,那么在这么多传递方式,哪种类型是比较适合组件与组件直接的传递呢。1、本.

2020-05-17 16:54:48 469

原创 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 3248

原创 Kotlin协程(5)Flow

0,引子看下面的例子:fun fooAsync(p: Params): CompletableFuture<Value> = CompletableFuture.supplyAsync { bar(p) } 可以使用Future来获取需要长时间运行的异步返回的值。当调用fooAsync(p)时,它会承诺将来会提供一个值,并且后台会运行一个操作栏来计算该值。现...

2019-09-22 02:52:30 8198 1

原创 Kotlin协程作用域(4)

CoroutineScope:public interface CoroutineScope { public val coroutineContext: CoroutineContext}这里先把这个方法的注释文档放过来:定义新协程的范围。每个协程构建器都是CoroutineScope的扩展,并继承其coroutineContext以自动传播上下文元素和取消。获取范...

2019-09-18 23:07:58 2107

原创 Kotlin协程挂起(3)

协程的挂起是个很重要也比较难懂的概念。从协程的启动开始讲起。 @Test fun 测试协程启动() { GlobalScope.launch(start = CoroutineStart.DEFAULT) 协程启动的地方@ { val 挂起方法的值 = 挂起方法("测试") println(挂...

2019-09-17 19:02:21 1419 1

原创 Kotlin协程启动(2)

在说协程启动之前来看看线程启动的代码: Thread { println("线程启动") }.start()是不是和协程的启动很像: GlobalScope.launch { println("test continuation start") }其实很多时候都可以用线程的特性来理解协程。再...

2019-09-10 22:11:07 421

原创 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 380

原创 一个效果不错的ViewPager

公司的项目想要一个这样效果的ViewPager展示1、第一页和最后一页带有弹性效果2、ViewPager底部图片随着页面滑动切换3、ViewPager页面上的2个图片一个水平切换一个45角切换这个效果如果简单的用原生的ViewPager实现肯定是解决不了的。如果是原生的ViewPager,实现效果如下:很明显这不是我需要的效果。第一页和最后一页带有弹性效果这...

2019-03-08 19:18:17 218

原创 一个带展开按钮的TextView控件

网上找了很多三方的实现但是都不是我想要的效果或者实现比较复杂,然后就自己写了一个。就这种效果其实就是很轻量级的一个实现。首先看我实现的第一个版本。public class ExpandTextView extends AppCompatTextView { /** * 的右侧文字Drawable */ private TextDrawable...

2019-03-05 18:03:42 578

原创 个人主页图片下拉放大效果

先看下效果:个人主页的图片展示可以随着用户的下拉而被放大。那么这个是怎么实现的呢?其实实现方式很简单AppBarLayout+CollapsingToolbarLayout+Toolbar+Behavior。那难点是那么呢?难点是个支持库版本里面AppBarLayout的实现效果是不一样的。我项目用的支持包是“27.1.1”版本,放大和缩小的效果有卡顿,有时候放大了就不缩小了。...

2019-03-05 17:39:14 1964 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 274

转载 Binder跨进程通讯实例

 图解:发起端线程向Binder Driver发起binder ioctl请求后, 便采用环不断talkWithDriver,此时该线程处于阻塞状态, 直到收到如下BR_XXX命令才会结束该过程. BR_TRANSACTION_COMPLETE: oneway模式下,收到该命令则退出 BR_REPLY: 非oneway模式下,收到该命令才退出; BR_DEAD_REPLY...

2019-02-19 10:33:43 493

转载 Binder驱动逻辑

Binder驱动:所有的用户控件方法都会经过系统调用对应到binder驱动方法,如: open-&gt; __open() -&gt; binder_open() binder_initstatic int __init binder_init(void){ int ret; //创建名为binder的工作队列 binder_deferred_wor...

2019-02-19 10:32:57 193

原创 面向对象编程之设计模式

面向对象的好处:可维护,可复用,可扩展和灵活性好面向对象编程的基本特征:封装,继承和多态

2018-06-05 18:16:57 2580

原创 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 2407

原创 Android的Handler机制详解2_native

接着Android的Handler机制详解1_framework 讲。

2018-05-27 00:44:34 1221

原创 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 691

原创 一个仿微信但是样式更加灵活的密码框控件

首先看看效果:我为它的很多属性都开放了接口,可以根据自己的需要自由修改。效果看了,接下谈谈它是怎么实现的。主要是思路可以由下图来表示:控件是继承于系统控件TextView,然后重写onDraw(Canvas),这样可以减少很多麻烦。根据图片的显示顺序,首先是绘制黑色的底: /** * 绘制边框,先绘制一整块区域 */ private void drawBoarder(C...

2018-05-11 18:00:56 976

原创 用于过滤aar中冲突类(class)和so库的脚本,也可以用来过滤jar中冲突class

需求产生的原因,有时候我们接入三方包的时候,会出现类冲突,这个时候我们就想能不能把三方包中的冲突类过滤掉,不参与编译。网上百度,google都没有找到一个好的解决方案,然后自己动手丰衣足食。灵感来源:Configuring Multi-Project Builds,创建 Android 库AAR库的Class和SO文件过滤将aar库导入项目的方式有2种:1,android{...

2018-04-27 18:13:26 10798 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 3955

转载 类图学习,所有资料整理源于网络

基本概念:类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。    类图的3个基本组件:类名、属性、方法。     属性和方法之前可附加的可见性修饰符:加号(+)表示public;减号(-)表示private;井号(#)表示p

2017-08-29 11:19:44 408

原创 Android 手机获取Mac地址的几种方法

Android 获取mac地址的几种方法

2017-05-22 16:39:50 23060 2

原创 使用AndroidStudio的Gradle打混淆jar包和aar包

使用AndroidStudio的gradle打jar包和aar包

2017-04-27 11:04:01 2781

原创 发布开源Library到JCenter

发布自己的Library到Jcenter详解。如果你在https://bintray.com/signup这个网站上注册的账号那就尴尬了。

2017-04-26 12:20:17 1458

原创 Eclipse集成Ant 打包签名APK和打混淆jar

Eclipase使用Ant打签名apk和混淆的jar

2017-03-22 18:35:29 1000

原创 java线程池的简单介绍与使用

一、介绍线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程...

2017-03-03 13:24:19 276

原创 java对日期时间的处理

公司在做im的时候碰到了这么一个问题:服务器返回的时间是UTC格式的2017-01-05T02:48:52.746Z。而本地的时区是GMT+8.所以我需要对时间进行转化。这里对时区进行简单的介绍一下,便于下面的理解:整个地球分为二十四时区,每个时区都有自己的本地时间,时区差东为正,西为负。在此,把东八区时区差记为 +0800。UTC + 时区差 = 本地时间

2017-01-05 10:49:43 1132

原创 java RSA分块加密尝试(仅仅做记录,可作为参考)

我们都知道加密算法输入和输出是有限制。输入的大小可以用:cipher.getBlockSize()得到输出的大小可以用:cipher.getOutputSize(blockSize)得到当我们加密一个很长的明文时如果不采用分块加密就会报错(javax.crypto.IllegalBlockSizeException)思想:将明文变成字节数组然后用blockSize分块,然后分别对每

2016-12-09 12:48:53 1242

原创 RxJava学习篇之三:操作符的讲解(2)-Retry-Repeat

今天RxJava操作的符的主角就是Repeat和RetryrepeatWhen,retryWhen,repear,retry

2016-12-08 11:09:22 2431

原创 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 2612

原创 Html.fromHtml()中Html.TagHandler()的使用

Android,TextView,Html,Html.fromHtml,Tag.Handler,XMLReader

2016-11-23 09:42:12 10396 5

原创 Android事件分发机制概括

Android的事件分发机制

2016-11-15 15:41:52 298

原创 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 632

原创 AS多渠道打包

在讲AS多渠道打包之前,先将一丢丢AS使用的小知识点,防止自己忘记:AS调试的快捷键:F7(进入方法),F8(按行执行),F9(调到一下个断点)还有一个Evaluate Expression我觉得有必要提一下,因为我自己经常用这个:关于ide的外观的一些设置:

2016-10-31 11:38:04 565

原创 RxJava学习篇之一:基础Observable,Observer,Single,Subject,Scheduler

本文介绍Rxjava中的基础Observable,Observer,Single,Subject,Scheduler基础知识。实例演示了每个的用法。

2016-09-05 11:43:25 3829

原创 Android视图的顶部悬停的实现

项目中经常会用到,一个View悬停到顶部的情况。这里借鉴网上的方式给出来2中实现方式。1,利用ScrollView+ListView实现2,利用ListView增加头部实现。然后简单的分析了一下它们的优缺。

2016-08-26 10:58:06 4119

原创 随着然键盘显示与消失的popuwindow

最近项目中碰到了这么个需求,就是一个popwindow要随着软件键盘弹出与消失,首先看一下完成后的效果。软键盘的显示与隐藏的监听

2016-08-16 14:22:16 1289

转载 浅谈 PopupWindow 在 Android 开发中的使用

在Android中弹出式菜单(以下称弹窗)是使用十分广泛一种菜单呈现的方式,弹窗为用户交互提供了便利。关于弹窗的实现大致有以下两种方式AlertDialog和PopupWindow,当然网上也有使用Activity并配合Dialog主题的方式实现弹窗,有兴趣的朋友也可以去研究一下。对于AlertDialog和PopupWindow两者的最主要区别也有以下两点:1 、位置是否固定。 Aler

2016-06-24 11:21:24 475

PersonalHederZoomIn-master.zip

个人主页图片下拉图片放大松开缩小效果实现,详细实现请看:https://blog.csdn.net/baidu_34012226/article/details/87708476

2019-06-15

java8的无政策限制权限文件Unlimited Strength Jurisdiction Policy Files

由于无政策限制权限文件(local_policy.jar、US_export_policy.jar),会导致在使AES,ElGamal等加密算法是,密钥的长度受到限制,用这个文件(jkd1.8)替换掉\Java\jre1.8.0_91\lib\security下的(local_policy.jar、US_export_policy.jar)这2个文件就ok了。 详情请查看:http://blog.csdn.net/baidu_34012226/article/details/53331147

2016-11-28

java 加解密算法,摘要算法和数字签名算法

包含Base64 包含对称加密算法:DES,3DEA,AES,PBE 包含对称加密算法:DH,RAS,ElGamal 包含摘要算法:MD2,MD4,MD5,SHA1,SHA2(SHA-224,SHA-256,SHA-384,SHA-512) 数字签名算法:RSA,DSA,ECDSA 详情请查看:http://blog.csdn.net/baidu_34012226/article/details/53331147

2016-11-28

java8的无政策限制权限文件(Unlimited Strength Jurisdiction Policy Files)

在使用AES或者ElGamal等加密算法的时候,由于无政策权限文件的限制(local_policy.jar 和 US_export_policy.jar),密钥的长度有限制,当替换掉\Java\jre1.8.0_91\lib\security中的这2个文件就ok了

2016-11-28

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-28

Android实现View顶部悬停的方法

Android实现View的顶部悬停的2种方法。 1,利用ScrollView+ListView实现 2,利用ListView曾加头部实现 详细的实现讲解请查看:http://blog.csdn.net/baidu_34012226/article/details/52326410

2016-09-03

Android视图的顶部悬停的实现

Android视图的悬停的2种实现方法(ScrollView和ListView)的介绍,以及优缺点分析。 详细的内容请访问:http://blog.csdn.net/baidu_34012226/article/details/52326410

2016-09-03

随着然键盘显示与消失的popuwindow

就是一个popwindow要随着软件键盘弹出与消失,关于软件盘显示与隐藏的监听。 详情请查看:http://blog.csdn.net/baidu_34012226/article/details/52220558

2016-08-26

apache-mina-2.0.9-bin

封装的Java socket的框架,使socket的使用更加方便 apache-mina-2.0.9-bin

2016-03-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除