自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (2)
  • 收藏
  • 关注

原创 java中的大数处理

问题背景由于平时与单片机通信比较多,众所周知,单片机是C语言写的,C语言既有无符号数据类型,也有有符号数据类型,而java只有有符号数据类型。由于工作需要,测试人员用单片机传给android 设备传输 unsigned long类型的最大数据,由于C语言unsigned long 是无符号类型的数据,即最大数据是2的64次方减1,但是在java中使用 Long.parseLong(result);去解析就会报异常,原因是java中long是有符号数据类型,没有无符号数据类型,看似有相同的数据类型,其实存储

2022-03-20 15:37:04 4988

原创 Android设备设置Apn相关

什么是ApnApn,Access Point Name,接入点名称,是手机上网必须要配置的一个参数,他决定了手机通过什么方式访问哪种网络环境。对于手机用户来讲,可以访问的网络类型有英特网,WAP网络,集团企业内部网络。而WAP网络估计现在已经被遗忘的差不多了,WAP是专门针对早期性能比较差的手机设计的精简版的网络协议,看下图相信大家就会有所记忆,尤其是80,90后,随着智能手机的发展,由于WAP不能满足智能手机强大的浏览器,所以很多WAP网站陆陆续续被关停。移动手机默认两种CMWAP和CMNET,一些

2022-02-12 20:56:02 3542 1

原创 关于android studio导出jar包和aar包

由于客户网络环境无法访问我提供的广域网的maven仓库地址,需要我提供本地jar包的方式,因此来看看我们需要怎么弄。一、导出jar1.首先需要创建一个app工程并且new 一个moudle,既然想封装成一个库那么肯定要在moudle里进行编代码吧,这里就不做过多的陈述,我直接拿项目作为案例。二、导出aar...

2022-02-02 00:55:47 4692

原创 使用SQLite的Cursor对象对数据库查询进行优化

使用背景很早期看了同事写的一段代码,非常有趣,为了获取数据库内所有人员的id集合,先通过dao对象获取数据库内所有人员信息,然后再一个个add进list集合。如果数据库人数达到上万级别,其实无论从内存还是从效率方面都不可取。 /** * 获取人员信息中的personId集合 * todo 此方法可优化 * * @return */ public List<String> getPersonIdList() {

2020-08-29 12:26:56 750 1

原创 git reset 和 git revert使用

使用背景很多时候当我们使用git管理我们的代码仓库时,会错误的提交代码,这时候我们想要恢复到我们提交之前的样子,这就需要使用git reset 和 git revert。使用区别git reset大家都知道HEAD是指向当前分支的最新commit,而git reset 就是将HEAD指向你想要指向的位置,并且抛弃掉这之后的提交。1.查看git提交记录 git log2.回退到想要回退的conmmitIdgit reset --hard commitId3.用“...

2020-07-07 00:08:03 282

原创 跨进程通信AIDL

项目中涉及到两个应用即两个进程间进行数据通信,而Android中进程之间的内存地址是相互独立的,一个进程无法访问另一个进程的内存地址。这里简单介绍下进程的概念,进程是一个程序或者应用的实体,每个进程都拥有自己独立的内存地址空间。官方文档上讲,为进行通信,进程需将其对象分解成可供操作系统理解的原语,并将其编组为可供您操作的对象。编写执行该编组操作的代码较为繁琐,因此 Android 会使用 AIDL...

2020-02-29 22:58:35 308

原创 windows bat脚本如何自动执行sqlcipher命令

windows bat脚本如何自动执行sqlcipher命令需求背景继sqlcipher解密完成后,觉得每次查看加密数据库都要输入一堆指令,不利于开发和测试工作,所以本文介绍如何通过bat脚本自动执行。直接使用命令行sqlcipher-shell64.exe universal_encrypt.db 进入到sqlite中然后再执行 1.PRAGMA key = '123456'...

2020-02-06 15:12:34 421

原创 window系统下,如何使用sqlcipher工具对已加密数据库解密

window系统下,如何使用sqlcipher工具对已加密数据库解密需求背景目前我项目里数据库是使用sqlcipher加密的,本文介绍如何使用sqlcipher工具进行解密,已给测试人员以及其他开发人员使用。使用工具工具下载地址,提取码59jq具体解密操作1.解压下载好的工具2.打开cmd命令工具进入到bin目录下3.解密已有的加密数据库,就以项目的universal_encr...

2020-02-06 14:32:33 5544 7

原创 【APP打包报错】To proceed, either fix the issues identified by lint, or modify your build script as follow

在studio 打release包的时候,编译不通过,报错如下To proceed, either fix the issues identified by lint, or modify your build script as follows:...android { lintOptions { checkReleaseBuilds false /...

2020-01-17 15:17:14 2475 5

原创 Android5.0和8.0应用层更改系统语言

Android5.0和8.0应用层更改系统语言修改app应用语言有两种方法,一种是修改app应用内部语言,通过Configuration的locale修改,还有一种是修改系统语言,本文由于工作需要修改系统语言,所以重点介绍下第二种方法。Android 5.0 Class classActivityManagerNative = Class.forName("android.app.Activ...

2020-01-01 16:52:05 749

原创 Android sqlite数据库加密

Android sqlite数据库加密需求背景Android系统自带的SQlite是明文存储,不支持加密,这样如果一旦第三方拿到设备端的db文件,相当于暴露了一切,所在在这个背景前提下,不得不对数据库进行加密。解决方案项目中使用的是greendao数据库框架,而greendao是支持数据库加密的,采用的是开源的SQLCipher进行加密。对sqlite数据库进行加密1.由于greend...

2020-01-01 16:51:29 930

原创 通过Retrofit2来看http

通过Retrofit2来看http什么是retrofit2从字面理解retrofit2就是用于Android和java平台的类型安全可靠的http请求框架。什么是类型安全呢,所谓类型安全就是编译阶段就已经做了类型检查,在程序运行阶段不会报类型错误。上述文字是官网描述,这里个人再补充一点,retrofit2实际上是对http请求的一个封装,底层还是通过okhttp进行网络请求的,本节只对r...

2019-08-12 23:36:39 1074

原创 ThreadLocal源码学习

在学习EventBus源码的时候看到了ThreadLocal,经查阅相关资料才知道ThreadLocal用到的地方还挺多,所以就简单在这里分析下ThreadLocal的原理及应用场景什么是ThreadLocalThreadLocal是一个能帮助线程存储变量副本的工具类,为什么是变量副本,因为当多个线程访问同一个变量,ThreadLocal就会将每个线程和这个变量一一建立映射关系(注意这里一一映...

2018-10-11 22:23:49 122

原创 ViewPager PagerAdapter notifyDataSetChanged无效问题

纵所周知,我们无论在使用RecyclerView还是ListView时,在更新完数据源以后都会调用adapter的notifyDataSetChanged()方法来更新视图。而PagerAdapter就是ViewPager使用的adapter,但是在实际使用中,发现更新数据源并不一定会更新视图。我们来看看谷歌对PagerAdapter的这个方法notifyDataSetChanged()的定义...

2018-07-30 15:36:42 1492

原创 解决viewpager与webview的水平(竖直)滑动冲突

菜鸟依然拿项目中遇到的问题来说事。问题描述:项目里使用viewpager + fragment来实现多频道的切换,其中一个fragment里面有一个webview,这个webview加载的H5页面有左右滑动轮播图,外层父控件(viewpager)会拦截并且消费左右滑动事件,所以H5中的左右滑动轮播图就不能滑动了。问题解决:1. 第一种方案是当频道页是H5的时候,就禁止外层viewpager左右滑动...

2018-06-13 00:14:44 2233

原创 关于getFragmentManager() 和 getChildFragmentManager() 两个方法

菜鸟第一次写博客,就拿在项目中遇到的问题来开篇吧首先问题出现一个activity里包含了一个fragment页面,一个fragment里有多个fragment,采用的技术是viewpager + fragment,第一次进入fragment加载都没问题,生命周期也都执行了。由于我的项目里该activity的launchMode是singleTask模式,当第二次进入该activity时,viewp...

2018-05-26 15:50:55 3583

aidl代码.zip

文章里涉及到到代码,包含客户端,服务端代码,可直接导入到android studio运行。 项目中涉及到两个应用即两个进程间进行数据通信,而Android中进程之间的内存地址是相互独立的,一个进程无法访问另一个进程的内存地址。这里简单介绍下进程的概念,进程是一个程序或者应用的实体,每个进程都拥有自己独立的内存地址空间。官方文档上讲,为进行通信,进程需将其对象分解成可供操作系统理解的原语,并将其编组为可供您操作的对象。编写执行该编组操作的代码较为繁琐,因此 Android 会使用 AIDL来完成跨进程通信。 Android中的跨进程其实就是IPC(Inter-Process Communication)通信,而AIDL正是IPC通信的机制。 AIDL全称是Android Interface Definition Language,是安卓接口定义的意思,通过定义相关的接口来实现跨进程通信。

2020-03-01

WEB应用开发课程程序源码

WEB应用开发课程程序源码,适用于初学者使用,对于javaweb编程入门有极大帮助。

2015-02-07

空空如也

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

TA关注的人

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