- 博客(66)
- 资源 (4)
- 收藏
- 关注
原创 安卓启动三方APP
1. 对于知道应用包名的情况PackageManager packageManager = getPackageManager();Intent intent= packageManager.getLaunchIntentForPackage("package.name");startActivity(intent);2. 对于知道应用首页scheme的情况Intent int...
2020-02-26 16:43:39
588
pip相关
pip安装指定版本的库到 pypi 搜索并确定库的版本号pip install [library name]==[version] 例如:pip3 install web3==4.0.0b6 windows上安装需要VC++编译的库如果不想手动编译,到 Unofficial Windows Binaries for Python Extension...
2018-01-23 09:17:12
193
jupyter相关
1. jupyter notebook在windows中打开,字体巨丑的解决办法%用户目录%\.jupyter\custom打开 custom.css,添加#notebook-container * { font-family: "微软雅黑", Consolas } ...
2018-01-10 20:34:37
185
日期相关操作
代码在java8测试过,默认返回的日期都是零点时间戳 1. 获取某一周的第一天public long getWeekMonday(long millis) { Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(millis); // 设置一周的第一天是星期一 cal.set...
2017-12-27 11:16:19
160
Java Shutdown Hook设置JVM退出时的操作
我们可以通过调用如下方法设置在JVM准备退出时,运行的操作 java.lang.Runtime.addShutdownHook(Thread t) 在hook中的start方法执行结束之前,主线程和其他子线程仍然可以继续执行自己当前的任务,所以某种意义上讲,该方法提供了服务器 gracefully shutdown 的机会,比如轮询某个进程的状态标记。 测试如下代码可以发...
2017-12-07 18:19:54
1739
Android权限控制EasyPermissions
EasyPermissions项目地址 https://github.com/googlesamples/easypermissions 1. 在AndroidManifest定义权限<uses-permission android:name="android.permission.CAMERA" /> 2. 在需要权限的方法前添加注解 @AfterPermiss...
2017-11-25 00:13:46
235
原创 AES加密和解密
本文重点在于如何在JAVA和Python中使用AES,以及相关的重要概念,而不是专门讲AES算法原理。 AES作为一个块加密算法 [block cipher],每次加密的明文大小固定为128bit,所以明文比较长的时候需要先分组再加密然后整合,这个过程中就会出现两个重要的因素:模式 和 填充方式。 1. 模式分组密码工作模式,常用的包含ECB,CBC,OFB,CFB和...
2017-11-15 20:10:45
883
Android6及以上版本获取MAC地址
为给用户提供更严格的数据保护,从 Android 6.0 (Marshmallow) 版本开始,对于使用 WLAN API 和 Bluetooth API 的应用,Android 移除了对设备本地硬件标识符的编程访问权。WifiInfo.getMacAddress() 方法和 BluetoothAdapter.getAddress() 方法现在会返回常量值 02:00:00:00:00:00。...
2017-06-01 20:40:41
295
Android Gradle命令打包
以下都在app module的build.gradle中操作 1. 设置打包的apk名字android { defaultConfig { ... versionCode 2 versionName "1.1" // 设置打包的apk名字 setProperty("archivesB...
2017-05-05 11:56:32
229
Android SearchView相关细节
以下所有内容都是针对android.support.v7.widget.SearchView,相比于默认的SearchView拥有更多的可配置性。 1. SearchView默认的状态是一个搜索图标,点一下才会展开输入框,如果想默认处于展开状态,可以调用如下方法:searchView.setIconifiedByDefault(false); 带来的副作用是此时的SearchVi...
2017-04-27 18:19:31
312
Android Activity生命周期出现异常
表现状况:1. 在activityA中start activityB,注意该过程没有finish的操作;2. 在activityB中finish自己;3. 回到activityA,发现原来的成员变量全部被清零/null,而且执行了onCreate方法 预期情况:应该是activityA保留所有成员变量的值,从onStart方法开始执行 可能的原因:1. 最恶...
2017-04-25 11:35:40
187
消息认证码算法
消息认证码算法的产生一定程度上是因为,处于安全考虑很多人已经开始在做消息摘要之前,先对原始的消息加上一个key之后,再做hash之类的处理,但是这样的处理方式仍然存在安全隐患,于是消息认证码算法应运而生。HMAC底层使用hash算法,是使用场景比较多的一种消息认证码(MAC)算法。关于HMAC和原始的Hash算法的安全性比较见wiki。 总体上来说,HMAC虽然使用了Hash作为底层算...
2017-03-29 21:44:22
2106
消息摘要
常用的消息摘要包含 MD5,SHA1,SHA256,区别可见 wiki -- SHA家族消息摘要的算法输出字节长度是确定的:MD5 --> 128 bitsSHA1 --> 160 bitsSHA256 --> 256 bits Java 中有 MessageDigest 类专门用来处理这样的需求,一般流程:getInstance --> ...
2017-02-25 21:13:29
139
gradle sync太慢的问题
原因是国内访问jcenter太慢,甚至连接不上,就会报各种关于依赖更新失败的错误。 以前oschina(也就是开源中国)提供了jcenter的镜像地址,然而不幸的是因为各种原因,最近停止服务了开源中国 Maven 镜像库关闭访问 幸运的是阿里云提供了jcenter镜像 http://maven.aliyun.com/ 可以在工程gradle中如下修改,加速gradl...
2016-11-07 17:04:47
2206
Lambda表达式之并行和并发
并行和并发是个非常大的概念,也不是一篇文章能够完全的包含,所以这边只能简要概括如何通过Lambda表达式来实现。 首先并行和并发是两个不同的概念:并行英文叫Parallelism,理想情况下,每个线程拥有自己独立的cpu核心,像平行线一样的各自执行自己的任务,多用于CPU密集型的任务;并发英文叫Concurrency,每个线程不一定拥有独立的cpu核心,每次的执行时间点和执行时...
2016-08-16 17:36:34
2063
Lambda表达式之collect
本文记录collect的高级用法。 依然先准备测试数据 class Item implements Comparable<Item> { public String id; public int count; public Item(String id, int count) { this.id = id; ...
2016-08-15 18:16:22
1492
原创 Lambda表达式之Stream
Java8引入了Stream以实现对集合更方便地进行函数式编程。Set和List都可以通过stream()方法获取Stream实例;数组可以通过Arrays.stream(array)工具方法获取Stream实例。 对Stream的操作分lazy方法和eager方法:lazy方法依然返回Stream实例,并没有立马开始计算;而eager方法相当于正式进入运算阶段,返回的...
2016-08-12 00:30:38
642
Lambda表达式初识
Lambda表达式作为Java8引入的新语法,使Java也可以实现函数式编程风格。 函数式编程与命令式编程最大的不同在于:函数式编程关心数据的映射,命令式编程关心解决问题的步骤,面向对象编程是也是一种命令式编程。 另外函数式编程强调没有“副作用”,对目标对象的处理结果不应该改变原来的对象,其他外部变量也不应该受到影响,也正是这个特性,函数式编程的并行化处理也不需要关注锁的问题。...
2016-08-09 18:00:36
102
关于Set和Map的注意事项
1. HashSet和HashMappublic boolean add(E e)Adds the specified element to this set if it is not already present. More formally, adds the specified element e to this set if this set contains no elem...
2016-08-04 17:06:37
109
使用原生的HttpURLConnection库进行网络请求
这边只考虑json格式轻量级的数据请求。 除了部分像Build.VERSION.SDK_INT这样的只属于android的sdk API,其他是java通用。 URL openConnection获取的URLConnection实例由平台和http类型决定,比如安卓从4.4版本开始,http的url底层为com.android.okhttp.internal.http.Http...
2016-07-22 15:04:16
241
python requests相关
1. requests通过Post/Form上传文件以微信上传logo接口为例:url https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN参数buffer文件数数据流access_token调用凭证 curl -F buffer=@test.j...
2016-07-22 11:43:51
77
安卓编译过程遇到的错误
1. duplicate entry:android/support/annotation/NonNull.class看看有没有哪个module中无意加入了android-support-v4.jar导致和v7的冲突
2016-07-02 18:39:35
90
Vim编辑器文本格式设置
在.vimrc下加入(.vimrc在Linux的用户home目录下,如果没有自己创建,对于Windows在vim安装目录下) set number "显示行号 set nobackup "设置没有备份文件 set autoindent "设置自动缩进 set guifont=Courier_New:h10 set cursorline "高亮当前行 hi Cu...
2016-06-30 15:20:12
446
关于onActivityResult的一些细节
1. onActivityResult是比onResume先调用的,而且如果onActivityResult中的code比较耗时的话,会阻塞onResume,可以通过如下的code进行测试:public void onActivityResult(int requestCode, int resultCode, Intent data) { Log.w(TAG, "on acti...
2016-05-06 14:55:16
162
Android5及以上版本设置状态栏颜色
Android5(LOLLIPOP, API-21)以及以上版本可以设置status bar(状态栏,显示时间和电池信息的地方)颜色 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowMa...
2016-04-27 15:26:26
306
java反射基础
1. 第一步的核心是获取Class常规情况下,一个class的二进制文件唯一对应jvm中的一个class对象,class的加载大部分情况都是jvm自动处理,对于动态加载的情况,一种是通过Class.forName,另一种是通过ClassLoader.loadClass(),这两种方式都可以加载classpath下的class二进制文件,关于classpath的获取How to prin...
2016-04-26 20:53:30
92
GlassFish4.1.1 ParserConfigurationException not found by moxy
在使用GlassFish4.1.1部署Jersey Rest项目时出现错误java.lang.ClassNotFoundException: javax.xml.parsers.ParserConfigurationException not found by org.eclipse.persistence.moxy 出现错误是在项目添加json依赖之后,无论是使用Jersey内置...
2016-04-11 16:05:11
162
Dropwizard实现一个最简单的REST
DropWizard http://www.dropwizard.io/0.9.2/docs/getting-started.htmlJetty for HTTPJersey for REST官方说法 capable of doing 30,000-50,000 requests per second 定义依赖<dependencies> <...
2016-03-22 19:10:01
305
BeautifulSoup获取博客列表
安装pip install beautifulsoup4建议安装lxml,作为beautiful soup的内置解析器对于windows,到 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 搜索下载并安装pip3 install "lxml-3.6.0-cp35-cp35m-win_amd64.whl" 核心方法http://ww...
2016-03-22 18:46:02
408
在Ubuntu通过Nginx和uwsgi部署Flask
以下基本是在文章 在Ubuntu上使用Nginx部署Flask 应用 上做了部分调整,没有使用virtualenv,python版本3.4。 依赖安装pip3sudo apt-get install python3-setuptoolssudo easy_install3 pip 安装python3-dev,uwsgi依赖,否则直接安装uwsgi可能会遇到pytho...
2016-03-21 17:16:48
110
okhttp3同步请求使用总结
官方文档:https://github.com/square/okhttp/wiki/Recipeshttps://github.com/square/okhttp 以下只考虑小数据量请求,比如请求rest json API 相关注意点1. okhttp3比较多的地方使用了builder模式,OkHttpClient、Request、FormBody等都可以通过&l...
2016-03-18 15:55:43
1658
Activity以Dialog形式出现
1. 正常定义Activity <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:...
2016-03-12 14:49:37
1411
颜色透明度的十六进制值
Android uses Hex ARGB values, which are formatted as #AARRGGBB. That first pair of letters, the AA, represent the Alpha Channel. You must convert your decimal opacity values to a Hexdecimal value. H...
2016-03-12 11:58:19
382
原创 通过XML定义控件背景形状颜色
在drawable里面定义xml,在background中引用<Button android:id="@+id/completeBtn" android:layout_width="80dp" android:layout_height="40dp" android:layout_marginTop="32dp" android:text="完成" android:text...
2016-03-12 11:18:39
280
Android5按钮阴影
Android 5 (Lollipop) 版本的按钮自带阴影,部分场合比较难看,取消阴影的方法 Lollipop has a nasty little feature called stateListAnimator which handles the elevations on Buttons, which leads to shadows. Remove the stat...
2016-03-10 15:06:11
99
原创 java容易忽略的问题
1. float运算的坑float f = 9.9f;float m = f * 100.0f;System.out.println(m); 结果并不是990不管是乘以100还是100.0f 8.9f 也有这个问题 2. string split问题String ss = "5.11.17.0/24,,2635167,,0,1,,,,";int ...
2016-03-04 14:32:39
111
实现Parcelable
Activity之间通过intent传递object时,该object的class需要实现Parcelable。 Interface for classes whose instances can be written to and restored from a Parcel. Classes implementing the Parcelable interface must als...
2016-02-23 20:32:58
124
通过matplotlib绘制心形
相关工具库很多,都是科学计算的东西:numpy、scipy、pandas、matplotlib、sympy、mayavi2 SciPy官网的介绍http://www.scipy.org/getting-started.htmlNumPy's array type augments the Python language with an efficient data stru...
2016-02-18 17:59:47
3675
2
真随机数
一般sdk自带的随机数都是伪随机数 RANDOM.ORG提供了API可以获取真随机数 JSON-RPC API – Release 1 首先需要申请key调用API的url https://api.random.org/json-rpc/1/invoke python测试>>> base_url='https://api.random....
2016-01-28 15:58:21
419
原创 用quote_plus和urlencode做url编码
1.py2需要import urllib py3需要import urllib.parse 以下不特殊说明显示的都是py3的结果,编码之后的字符串可以到一些站长网站去解码校验2.quote_plus用于对字符串编码>>> quote_plus('中文')'%E4%B8%AD%E6%96%87' 可适用场景,get方式的请求...
2016-01-27 15:27:00
1384
求闭包 属性集闭包 函数依赖的闭包
2010-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人