9 dodod2012

尚未进行身份认证

我要认证

其实我是一个搬运工,搬走了别人的砖头从来不留名O(∩_∩)O哈哈~

等级
TA的排名 0

Java利用MessageDigest获取字符串或文件MD5详解

之所以转载这篇文章,是因为他的注释非常详细,而且原文章的评论很有趣(个人认为^_^)MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性。用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm)。另外还有一种常用的消息摘要算法SHA1。如果想了解这些的话,可以去百度百科:MD5、SHA1、消息摘要算法。 Java已经实现了MD5、SHA1算法。利用java.security.MessageDigest类就可以获取字符串和文件的MD5以及...

2020-07-30 15:25:35

Math.round(),Math.ceil(),Math.floor()的区别

1、Math.round()“四舍五入”,该函数返回的是一个四舍五入后的的整数 double d = 3.1415926; double d2 = 18.58; double d3 = -15.23; double d4 = -16.85; long round1 = Math.round(d); // 结果 3 long round2 = Math.round(d2); // 结果 19 ...

2020-07-30 10:57:21

Android中获取文件的md5,解决首位0被省略问题,解决超大文件问题

Android中获取文件的md5,如果首位是0会被省略:解决方法:https://blog.csdn.net/dodod2012/article/details/107631510但是采用上面的方法,如果文件超过2G,会超过FileChannel 的 map 方法中 size 参数会有大小限制,源码中发现该参数值大于 Integer.MAX_VALUE 时会直接抛出 IllegalArgumentException(“Size exceeds Integer.MAX_VALUE”) 异常,所以对于.

2020-07-28 16:25:42

内存文件映射方式读取超大文件踩坑题解析

问:使用内存文件映射 MappedByteBuffer 读超大文件会有什么问题吗?答:这种方式存在一个致命问题就是依然没法读取超大文件(大于 Integer.MAX_VALUE),因为 FileChannel 的 map 方法中 size 参数会有大小限制,源码中发现该参数值大于 Integer.MAX_VALUE 时会直接抛出 IllegalArgumentException(“Size exceeds Integer.MAX_VALUE”) 异常,所以对于特别大的文件其依然不适合。本质上是由于

2020-07-28 16:15:54

android中获取文件的md5值时首位出现0被省略,而造成了只有31位字符的解决办法。

问题:使用BigInteger 会出现首位为0时MD5值出现31位的现象。获取单个文件MD5 其中一种操作方式 /** * 获取单个文件的MD5值! * @param file * @return */ public static String getFileMD5(File file) { if (!file.isFile()) { return null; } MessageDigest digest = null; FileInputStrea.

2020-07-28 11:06:26

Android开发——Android中常见的4种线程池(保证你能看懂并理解)

0.前言转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52415337使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用,减少创建和销毁线程的性能开销。其次,能控制线程池中的并发数,否则会因为大量的线程争夺CPU资源造成阻塞。最后,线程池能够对线程进行管理,比如使用ScheduledThreadPool来设置延迟N秒后执行任务,并且每隔M秒循环执行一次。下面会通过介绍线程池中的真正实现者——ThreadPoolExecu

2020-07-22 16:32:12

手动创建线程池,效果会更好哦

看阿里巴巴开发手册并发编程这块有一条:线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式手动创建。线程池执行任务逻辑和线程池参数的关系执行逻辑说明:判断核心线程数是否已满,核心线程数大小和corePoolSize参数有关,未满则创建线程执行任务 若核心线程池已满,判断队列是否满,队列是否满和workQueue参数有关,若未满则加入队列中 若队列已满,判断线程池是否已满,线程池是否已满和maximumPoolSize参数有关,若未满创建线.

2020-07-20 15:45:49

android:screenOrientation=“portrait“ 一直警告报红

错误全文:Expecting android:screenOrientation="unspecified" or "fullSensor" for this activity so the user can use the application in any orientation and provide a great experience on Chrome OS devices.Google翻译:此活动需要android:screenOrientation =“ unspecified

2020-07-17 15:35:34

golang 按任意键继续

package mainimport ( "fmt")import ( termbox "github.com/nsf/termbox-go")func init() { if err := termbox.Init(); err != nil { panic(err) } termbox.SetCursor(0, 0) termbox.HideCursor()}func main() { fmt.Println("hello") pause() fmt.Pri.

2020-07-16 15:26:50

FileChannel原理

官方对Channel的解释(一个用于输入/输出操作的连接。通道表示对实体的开放连接,如硬件设备、文件、网络套接字或能够执行一个或多个不同的输入/输出操作的程序组件,例如读取或写入。)Thanking In Java中的描述Channel是对I/O操作的封装。FileChannel配合着ByteBuffer,将读写的数据缓存到内存中,然后以批量/缓存的方式read/write,省去了非批量操作时的重复中间操作,操纵大文件时可以显著提高效率(和Stream以byte数组方式...

2020-07-09 16:28:39

Android AES 文件加密解密(解决超大文件内存溢出问题)

总结:超大文件采用AES加密,在Android手机上采用FileChannel,一次读取一定的字节数,而后再进行加密解密,最后再通过FileChannel生成新文件几番折磨终有结果,现将Demo整理出来。。。package com.king.zjc; import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;import java.nio.ByteBuffer;import j.

2020-07-09 16:17:24

Android 9.0 AES加密适配

谷歌博客(爬墙楼梯自备)前言Android 9.0 AES加密适配的大坑,我帮大家踩过了,希望对大家有帮助报错日志错误日志如下java.security.NoSuchAlgorithmException: class configured for SecureRandom (provider: Crypto) cannot be found. 01-08 07:36:44.140 24115-24115/com.boy.learning W/System.err: ja.

2020-06-16 15:04:48

java.net.UnknownServiceException: CLEARTEXT communication ** not permitted by network security polic

Android P http网络请求的问题Google表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo 则不受影响。因此在Android P

2020-06-04 16:37:37

File.listFiles()返回null

问题描述:File.listFiles()返回null这几天Android Studio 用的是3.6.3,新项目使用一个原有的获取Android文件列表的工具类,说啥也不显示,同样的工具类,其他老的APP都好用,一脸懵逼。排查后发现 新项目的 targetSdkVersion 是29 也就是 Android 10.0最简便的办法是直接改targetSdkVersion 改成28,问题完美解决。当然如果忘记动态申请权限也会导致返回null解决方法如果是androi...

2020-06-04 10:11:12

AndroidStudio如何将两个Module打成一个jar包或者aar

前几篇文章抄啊抄,基本Android组件化开发看那几篇就够用了,下面就该打包了,(⊙o⊙)…打包遇到了问题,参照如下问题:问题地址:https://www.oschina.net/question/2292274_2192845AndroidStudio如何将两个Module打成一个jar包或者aar现在有一个Android工程有三个module demo 、library、core 其中library模块依赖于core模块 现在想把library模块以及他所依赖的core模块生成一个ja...

2020-05-15 16:11:42

手把手讲解 Android组件化开发+自定义路由框架

前言手把手讲解系列文章,是我写给各位看官,也是写给我自己的。文章可能过分详细,但是这是为了帮助到尽量多的人,毕竟工作5,6年,不能老吸血,也到了回馈开源的时候.这个系列的文章:1、用通俗易懂的讲解方式,讲解一门技术的实用价值2、详细书写源码的追踪,源码截图,绘制类的结构图,尽量详细地解释原理的探索过程3、提供Github 的 可运行的Demo工程,但是我所提供代码,更多是提供思路,抛...

2020-04-29 15:50:24

Android组件化开发之五:组件化开发实战Demo

组件化开发系列文章Android组件化开发之一:为什么要进行组件化开发Android组件化开发之二:组件化架构Android组件化开发之三:组件化开发手册Android组件化开发之四:组件化填坑之旅Android组件化开发之五:组件化开发实战Demo文章目录1. 组件化项目结构图2. 组件化项目模块3. 注意事项4. git地址1. 组件化项目结构图2. 组件化项...

2020-04-29 15:18:15

Android组件化开发之四:组件化填坑之旅

序号 名称 坑深度 内容 1 JPush 极光推送的配置文件不能放在library工程里面,必须放到application工程中。 2 Resource IDs Resource IDs cannot be used i...

2020-04-29 14:55:09

Android组件化开发之三:组件化开发手册

组件化开发系列文章1. Android组件化开发之一:为什么要进行组件化开发2. Android组件化开发之二:组件化架构3. Android组件化开发之三:组件化开发手册4. Android组件化开发之四:组件化填坑之旅5. Android组件化开发之五:组件化开发实战Demo开发模式为project新建一个项目专门用来对此业务模块的组件化进行开发,项目内可分为appli...

2020-04-29 14:37:51

Android组件化开发之二:组件化架构

组件化开发系列文章1. Android组件化开发之一:为什么要进行组件化开发2. Android组件化开发之二:组件化架构3. Android组件化开发之三:组件化开发手册4. Android组件化开发之四:组件化填坑之旅5. Android组件化开发之五:组件化开发实战Demo从头对一个现有的APP项目进行组件化改造,需要按计划按步骤逐步实现。这里我们分为四期计划进行改造,...

2020-04-29 09:29:33
勋章 我的勋章
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。