- 博客(50)
- 资源 (9)
- 收藏
- 关注
原创 Android studio 4.0 offline mode
Android studio 4.0 的 offline mode 挪到了右侧 gradle 模块下,具体位置如下图所示:
2020-06-15 11:51:16
14117
9
原创 Could not find method leftShift() for arguments
问题在 Gradle 中创建 tasktask hello << { println('Hello, world!')}执行时发生错误如下 Could not find method leftShift() for arguments [build_67oaw90jaj2sk13fmj93prm52$_run_closure4@84f1a43] on task ':...
2019-11-22 11:24:05
505
原创 git 忽略已加入到版本库的文件
项目中,我们会用到 ‘.gitignore’ 来忽略一些文件,不记录这些文件的版本控制。然而,经常发现已经添加到了 ‘.gitignore’ 的文件/目录,每次的修改等仍会记录版本。产生这种原因,一般都是由于在初始项目时,已经使用 git add 将该文件加入到了版本库。那么如何来从版本库移除呢?从版本库中移除已被 ‘.gitignore’ 忽略的 'tempFile ’git rm -r ...
2019-09-21 10:41:39
1335
原创 gradle3.x 和 2.x 的依赖关键字
新旧对比gradle3.x 与 2.x 的依赖方式有了很大区别,具体来说,有了下面这样的改动3.x2.ximplementation无apicompilecompileOnlyprovidedruntimeOnlyapkdebugImplementationdebugCompilereleaseImplementationrelea...
2019-02-24 22:40:17
454
原创 SSL从理论到实践(五)——SSL通信的实现(Java、Android、IOS、C)
没有读过前几篇文章的同学建议先阅读:SSL从理论到实践(一)——密码学的相关概念SSL从理论到实践(二)——SSLSSL从理论到实践(三)——证书文件SSL从理论到实践(四)——Keytool 要使用SSL,首先要生成证书。由于JDK自带的keytool工具默认不能生成BKS类型的密钥库,而Android客户端只支持BKS类型的密钥库,所以要先扩展keytool使其能够生成BKS密钥库...
2019-01-18 22:26:30
1726
1
原创 SSL从理论到实践(四)——Keytool
keytool是一个java数据证书的管理工具。keytool将密钥和证书存在一个称为keystore(即密钥库)的文件中。在keystore里,包含两种数据——KeyEntry和CertEntry,KeyEntry包含私钥和证书,CertEntry只包含证书。keystore中可以有多个Entry(即条目),在库里的每个Entry都是靠别名来识别的。 keytool不需要额外安装,是jd...
2019-01-17 00:16:20
1767
原创 SSL从理论到实践(三)——证书文件
1.证书标准X.509:这是一种证书标准,主要定义了证书中应该包含哪些内容。其详情可以参考RFC5280,SSL使用的就是这种证书标准。2.公钥加密标准(PKCS)PKCS(The Public-Key Cryptography Standards))是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封...
2019-01-16 23:08:39
716
原创 SSL从理论到实践(二)——SSL
1.SSL介绍 SSL(Secure Sockets Layer 安全套接字层)是为网络通信提供安全及数据完整性的一种安全协议。SSL最初的几个版本(SSL 1.0、SSL2.0、SSL 3.0)由网景公司设计和维护,从3.1版本开始,SSL协议由因特网工程任务小组(IETF)正式接管,并更名为TLS(Transport Layer Security),发展至今已有TLS 1.0、TLS1.1...
2019-01-16 00:55:10
653
原创 SSL从理论到实践(一)——密码学的相关概念
1.基本概念密码学(cryptology): 研究如何隐密地传递信息的学科。明文(plaintext):没有加密的文字。密文(ciphertext):加了密的文字。加密(encryption):将明文消息变成密文消息。解密(decryption):将密文消息变成明文消息。算法(algorithm):取一个输入文本,产生一个输出文本。加密算法(encryption algorithm...
2019-01-16 00:37:39
436
原创 Android 9.0 WiFiManager startScan deprecated 返回false
Android 9.0 将 WiFiManager 的 startScan() 方法标为了废弃,前台应用 2 分钟内只能使用 4 次startScan(),后台应用 30 分钟内只能调用 1次 startScan(),否则会直接返回 false 并且不会触发扫描操作。详情参见:https://stackoverflow.com/questions/49178307/startscan-in-w...
2019-01-15 01:08:51
9967
原创 Android文件存储——内部存储与外部存储
一、Android中内部存储和外部存储的概念内部存储概念:注意内部存储不是内存。内部存储位于系统中很特殊的一个位置,如果你想将文件存储于内部存储中,那么文件默认只能被你的应用访问到,且一个应用所创建的所有文件都在和应用包名相同的目录下。也就是说应用创建于内部存储的文件,与这个应用是关联起来的。当一个应用卸载之后,内部存储中的这些文件也被删除。从技术上来讲如果你在创建内部存储文件的时候将文件属性...
2019-01-15 00:47:48
1507
原创 Text file busy(文本文件忙)
发生此错误是因为当前文件已被占用,找出占用该文件的进程并杀死就可以了。 使用到的命令如下: 找出占用该文件的进程:sudo fuser 文件名杀死占用该文件的进程sudo kill -9 进程id
2017-11-09 12:42:54
31915
1
原创 VirtualBox创建Windows与Ubuntu的共享文件夹
操作步骤:1.将window中的一个文件夹指定为共享文件夹设置->共享文件夹->添加共享文件夹->勾选自动挂载和固定分配(有时候默认就是固定分配)->点击确定 2.将刚刚指定的共享文件夹与Ubuntu的某个目录关联起来此处我选择在/mnt下创建一个“share”目录,将刚刚的“gongxiang”目录与“share”目录关联起来。 进入/mnt: cd /mnt 创建share目录:
2017-11-08 23:50:33
7210
转载 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)
原文链接:http://www.cnblogs.com/guogangj/p/4118605.html之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂.写这篇文章的目的就是为了理理清这些概念,搞清楚它们的含义及关联,还有一些基本操作.SSLSSL -
2017-09-20 20:22:00
419
转载 c/c++中#include <>与#include""区别
原文:http://kooyee.iteye.com/blog/340846 <>先去系统目录中找头文件,如果没有再到当前目录下找。所以像标准的头文件 stdio.h、stdlib.h等用这个方法。 而”“首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。
2017-09-13 10:58:37
405
原创 VMware Ubuntu安装过程以及遇到的问题
安装过程参见此博客: VMware Ubuntu安装详细过程 出现错误“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的解决方案: vmware安装ubuntu ” Intel VT-x 处于禁用状态”
2017-09-12 17:21:52
471
原创 用VS编写第一个C++程序
注:笔者使用的VS版本为2017。 1.打开VS2017,选择文件->新建->项目。 2.新建项目时选择Visual C++空项目,并将名称修改为“HelloWorld”,位置我选到了“E:\workspace\visualstudio\”下,点击确定。 3.在项目资源管理器里选择源文件,右键,选择添加->新建项。 4.选择C++文件,并将名称修改为HelloWorld。
2017-09-09 12:12:54
51308
12
转载 字、字节、位的关系
字 word 字节 byte 位 bit 字长是指字的长度16位机器中1字=2字节(1 word = 2 byte) 32位机器中1字=4字节(1 word = 4 byte) 1字节=8位(1 byte = 8bit) 16位机器中一个字的字长为16 一个字节的字长是8bps 是 bits per second 的简称。一般数据机及网络通讯的传输速率都是以「bps」为单位。
2017-08-02 23:14:43
3475
转载 Android签名详解
1. 为什么要签名 1) 发送者的身份认证 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,以此保证签名不同的包不被替换 2) 保证信息传输的完整性 签名对于包中的每个文件进行处理,以此确保包中内容不被替换 3) 防止交易中的抵赖发生,Market对软件的要求 2. 签名的说明 1) 所有的应用程序都必须有数字证书,Android系统不会安装一个没有数字证
2017-01-19 14:53:42
535
原创 JUnit4 + Eclipse “An internal error occured during Launching”
使用eclipse进行单元测试时报了这样一个错误 百度后在此处找到了解决方法http://stackoverflow.com/questions/1250505/junit4-eclipse-an-internal-error-occured-during-launching 1.点击eclipse的Help 2.点击Install New Software 3.Work with中选择
2017-01-19 14:21:57
2067
1
原创 蓝牙共享网络BluetoothPan
在Android手机的设置->无线和网络->更多->移动网络共享里有一个蓝牙共享网络的功能。此功能的主要作用是通过蓝牙连接将一部手机的网络共享给另外一台手机。在Android手机中的操作步骤如下(其中A手机作为网络的提供方,B手机作为网络的接收方):1.A手机连上网络(wifi或者流量),并在设置页面打开“蓝牙共享网络”的开关;2.B手机打开蓝牙搜索设备,在连接A手机的蓝牙时打开配置项里的“互联网
2016-11-07 20:57:02
12547
原创 Windows中使用bsdiff
bsdiff是一个差异包比较工具,可以用来实现Android的增量更新,详情请见这篇文章Android 增量更新完全解析 是增量不是热修复。只是这篇文章的背景是基于mac系统的,关于其第二步——增量文件的生成与合并——自己各种寻求编译方法,始终没能成功编译出bsdiff和bspatch文件。后来自己终于放弃自己编译,直接百度了windows下的bsdiff文件,找了半天终于找到了可以直接运行的bsd
2016-10-12 23:25:26
7524
6
原创 Android中Base64编码
最近集成第三方sdk时需要Basic Authentication认证,在用Base64加密做签权的时候用Base64.DEFAULT一直不能签权成功,最后用Base64.NO_WRAP成功了。 后来查了一下原因,原来使用Base64.DEFAULT当字符串过长(一般超过76)时会自动在中间加一个换行符,字符串最后也会加一个换行符,这样就导致和其他模块对接时结果不一致,于是签权失败。而Base64
2016-10-10 15:51:24
29738
原创 HTTP协议简介
一、http协议规定了客户端和服务端交流时的数据格式二、特点请求和响应都由三部分组成。请求信息(3部分组成): 1.请求行 (由3部分组成) a.请求的方式 b.请求的资源地址 c.请求协议2.请求头信息(2部分组成) a. 头名称 b. 头值3.请求正文 (只有请求的类型是post才会有) 响应信息:(3部分组成)1.响应行(由3部分组成)
2016-10-09 16:08:39
295
原创 ListView中使用EditText(解决EditText焦点丢失、保存数据以及滚动冲突的问题)
前几天一同学项目中的某个功能需要ListView+EditText来实现,希望我给他写个Demo,自己就随手写了一个小的Demo。后来想了想觉得这个功能其实挺常用的,而且期间也踩了几个坑,就整理了一下决定写成博客,希望能够帮到大家。好了,废话不多说了,接着就贴代码。 一、编写布局文件 1.activity的布局activity_main<RelativeLayout xmlns:android=
2016-06-19 19:58:21
9361
原创 Android Studio 常见问题及解决
1.failed to find build tools revision 详细日志:failed to find build tools revision 23.0.3日志分析:这句话是说找不到版本号为23.0.3的build tools。这个问题一般发生在导入别人工程时,两个人的build tools不一致导致。 解决办法:此问题有两种解决办法 一是下载对应的build tool
2016-06-13 10:55:36
1087
原创 Eclipse常见问题及解决
一.The environment variable HOME is not set. 1. 详细日志:eclipse.buildId=4.5.2.M20160212-1500 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh_CN Framework argume
2016-05-27 12:37:28
18084
原创 性能优化
一、关于性能优化的几处问题 1.是否应该手动调用System.gc()? 不应该。在Android 2.2 (API level 8)以及之前,当垃圾回收发生时,应用的线程是会被暂停的,这会导致一个延迟滞后,并降低系统效率。 从Android 2.3开始,添加了并发垃圾回收的机制,但是在GC开始和结束的时候仍然会阻塞主线程。 2.是否有必要调用Bitmap.recycle()方法?
2016-04-25 22:31:16
4076
原创 OOM详解
OOM主要有两种原因导致: 1. 加载大图片; 2. 内存泄漏; 因此这篇文章会简单介绍一下这两个方面,希望对大家解决OOM问题有所帮助。 一、加载大图片 在Android应用中加载Bitmap的操作是需要特别小心处理的,因为Bitmap会消耗很多内存。比如,Galaxy Nexus的照相机能够拍摄2592x1936 pixels (5 MB)的图片。 如果bitma
2016-04-18 19:50:14
8463
原创 完美解决EditText和ScrollView的滚动冲突(下)
上篇文章完美解决EditText和ScrollView的滚动冲突(上)中提到咱们自己写了一个判断EditText是否可以在垂直方向上滚动的方法,那么这个方法是如何得来的呢? 其实Android API里是有一个判断控件是否可以在垂直方向上滚动的方法的,方法名字叫做canScrollVertically(int direction),代码如下:/** * Check if this vie
2016-02-20 02:56:27
4863
原创 完美解决EditText和ScrollView的滚动冲突(上)
一、解决EditText和ScrollView滚动冲突的代码在网上搜了一下EditText和ScrollView的滚动冲突,发现几乎所有的解决方案都是触摸EditText的时候就将事件交由EditText处理,否则才将事件交由ScrollView处理。这样确实初步解决了两者之间的滚动冲突,但并不是最好的解决方案。比如,EditText本来可以显示6行文本,但是目前只显示了5行文本,此时我们在Edit
2016-02-20 01:41:16
15874
15
原创 GreenDao简介
一、使用步骤1.导入三个jar包,greendao.jar、greendao-generator.jar、freemarker.jar(链接地址)。2.新建一个Java类GenerateDao,运行以下代码:public class GenerateDao {public static void main(String[] args) throws Exception {int v
2016-01-11 23:31:10
836
原创 Android手机适配,手机尺寸、px、dpi、dp、sp详解
转载请注明出处:http://blog.youkuaiyun.com/z191726501/article/details/50411483最近一直在学习Android的适配问题,在学习的过程中发现很多博客抄来抄去,并没有什么实质的东西,因此决定将自己关于Android手机适配问题的学习笔记整理出来,希望都够帮助到大家。要学习Android的适配问题,以下几个概念是必须要理解的。px:像素,pix...
2015-12-27 10:10:33
16414
原创 Android全局捕获异常
1.自定义异常捕获类实现Thread.UncaughtExceptionHandler接口public class CrashHandler implements Thread.UncaughtExceptionHandler { private static CrashHandler crashHandler = new CrashHandler(); private Cr
2015-12-01 10:12:12
467
转载 Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/9153761记得在前面的文章中,我带大家一起从源码的角度分析了Android中View的事件分发机制,相信阅读过的朋友对View的事件分发已经有比较深刻的理解了。还未阅读过的朋友,请先参考 Android事件分发机制完全解析,带你从源码的角度彻底理解(上) 。
2015-10-08 16:31:54
528
转载 Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/9097463其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListVie
2015-10-08 16:28:40
456
原创 Android获取系统时间
1.获取时分秒/** * 得到系统时间 * @return 12:25:30 */public String getSystemTime(){ SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss"); String systemTime = format.format(new Date()); r
2015-09-28 13:51:00
867
原创 Android隐藏虚拟按键(底部导航栏)
/** * 隐藏Android底部的虚拟按键 */private void hideVirtualKey(){ Window window = getWindow(); WindowManager.LayoutParams params = window.getAttributes(); params.systemUiVisibility = View.SYSTEM_
2015-09-28 13:48:49
7973
原创 反射
一、Class类与反射1.反射:反射就是把Java类中的各种成分映射成相应的Java类。例如,一个Java类中用一个Class的对象来表示。一个类中的组成部分:成员变量,方法,构造方法,包等等信息也用一个个的Java类来表示。表示Java类的Class类显然要提供一系列的方法来获得其中的变量、方法、构造方法、修饰符、包等信息,这些信息就是用相应类的实例对象来表示,它们是Field、
2015-08-27 09:23:38
439
Core_v5.1 (1).pdf
2019-11-22
Python web接口开发与测试
2018-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人