- 博客(27)
- 资源 (15)
- 收藏
- 关注
原创 Android获取设备CPU最大频率两种方案
方案1: long result = 0L; try { String line; BufferedReader br = new BufferedReader(new FileReader("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq")); ...
2019-06-30 23:23:49 2983
原创 Java线程同步可重入锁ReentrantLock与Condition
import java.util.LinkedList;import java.util.Queue;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public class Main { private Queue<Integer>...
2019-06-29 23:35:46 638
原创 Python文件字节读写
import osfilename = 'test.txt'#把文件内容以byte字节形式读写到缓冲区中。def read_into_buffer(filename): buf = bytearray(os.path.getsize(filename)) with open(filename, 'rb') as f: f.readinto(buf) ...
2019-06-28 23:10:36 18243
原创 Java线程同步栈Stack最新的LinkedBlockingDeque
Java线程同步栈Stack最新的LinkedBlockingDeque自Java 1.2开始,Java官方建议开发者不要使用Vector,为此受影响的还有Stack,因为Stack直接继承自Vector。尤其是,如果遇到线程同步栈的开发场景,可以考虑Java新式的BlockingDeque。BlockingDeque是一个双向的“队列”,它既可以作为FIFO的队列使用,也可以作为FILO的栈...
2019-06-27 23:33:06 1117
原创 Android可保活的、不依附于应用进程存活的后台任务框架:WorkManager
Android可保活的、不依附于应用进程存活的后台任务框架:WorkManagerWorkManager旨在实现不依附与App进程的后台线程化任务。举例来说,假设App在本地有一个大小约2GB的文件需要上传到远程服务器。App希望在手机空闲且设备资源充足的情况下将这2GB大小的文件上传。同时,该上传任务不受App进程存活与否影响(比如当前App进程被kill掉,仍能执行该任务)。这种类型的后...
2019-06-26 23:11:07 4745
原创 Java设计模式:组合模式
组合模式的一个典型应用比如系统的文件系统,文件系统里面有文件和目录,目录里面又有文件。组合模式适合把文件和目录“组合”在一起。File代表文件,Dir代表目录,Component代表一种文件和目录共有的抽象。public abstract class Component { public abstract String getName(); public abstract void a...
2019-06-25 23:36:51 471
原创 Retrofit2/OkHttp3拦截器Interceptor获取完整http请求和响应数据
Retrofit2/OkHttp3拦截器Interceptor获取完整http请求和响应数据引入: implementation 'com.squareup.retrofit2:retrofit:2.5.0' implementation 'com.squareup.okhttp3:logging-interceptor:3.12.2'package com.exam...
2019-06-24 23:30:24 8916 1
原创 Python迭代器itertools
import itertoolsimport heapqlines1 = ['zhang', 'phil', 'fly']lines2 = ['#hello', 'world']my_list = ['a', 'b', 'c']print("enumerate")for idx, val in enumerate(my_list, 1): # 第二个参数1,数组下标从1开始。若...
2019-06-23 23:09:37 402
原创 Java设计模式:责任链审批模式
/** * 采购单审批者。 * * @author zhangfly * */public abstract class Approver { protected Approver successor; // 后继审批对象。 protected String name; // 审批者姓名。 public Approver(String name) { this.name...
2019-06-22 23:18:07 2513
原创 Android Stduio中配置和使用Google Protobuf
Google官方Protobuf文档首页:https://developers.google.com/protocol-buffers/关于Google Protobuf在Android studio中的配置方法,网上说的各种方案都有,本文给出一个相对简单和谷歌官方的配置方案。配置需要用到为Protobuf制作的一个插件:https://github.com/google/prot...
2019-06-21 23:20:31 6352 2
原创 Python时间日期计算
from datetime import timedeltafrom datetime import datetimefrom dateutil.relativedelta import relativedeltafrom pytz import timezonea = timedelta(days=0, hours=0, minutes=1)b = timedelta(hours=...
2019-06-20 23:25:47 2683
原创 Java设计模式:桥接模式解决的架构设计痛点
现象痛点:现在创建一个工厂,工厂的日常运行是生产和销售。如:public abstract class Factory { /** * 生产 */ public abstract void produce(); /** * 销售 */ public abstract void sell(); /** ...
2019-06-19 23:24:12 314
原创 《阿里巴巴Android开发手册》Executors进程池创建迷之问题探讨
《阿里巴巴Android开发手册》Executors进程池创建迷之问题探讨《阿里巴巴Android开发手册(2018.3.5 ,version 1.0.1)》(以下简称《手册》)第五章《进程、线程与消息通信》第4小节(第33页开始),写道:【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更加明确线程池的...
2019-06-18 23:24:35 534 4
原创 Java设计模式:透明式合成模式
import java.util.List;/** * 文件和文件夹共同的抽象模型。 * */public abstract class Component { public abstract void print(String s); public void addChild(Component child) { throw new Unsupp...
2019-06-17 23:19:26 402
原创 Java平台原生Proxy代理把MVP中普通函数接口切换调度到Android UI主线程
Java平台原生Proxy代理把MVP中普通函数接口切换调度到Android UI主线程在Android开发者,这种线程切换的需求场景很常见,比如在后台普通的Java线程展开了一项耗时的操作(比如下载一个大文件),下载时候需要实时更新下载进度。普通Java线程不能直接接触Android UI主线程的View,因此在后台获得下载进度后,需要切换到Android UI主线程把数值设置到Androi...
2019-06-16 23:11:43 595
原创 Python随机选择和随机样本
import randomvalues = [1, 2, 3, 4, 5, 6]#从数组中随机选一个元素。print(str(random.choice(values)))#随机选择N个样本处理。print(random.sample(values, 3))#随机打乱数组内容。random.shuffle(values)print(values)输出:4...
2019-06-15 23:03:47 8866
原创 Android监听USB连接/断开,充电/未充电
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_paren...
2019-06-13 23:35:54 3637
原创 Java设计模式:建造者模式
public class Product { private String partA; private String partB;}public abstract class Builder { protected Product product = null; public abstract void buildPartA(); public abstrac...
2019-06-12 23:23:21 325
原创 Python format字符串替换
s = '{name} has {n} messages.'myname = 'zhangphil'myn = 2019s2 = s.format(name=myname, n=myn)print(s2)print(s2.replace('phil', 'fly', 5))x = 1.23456print(format(x, '0.2f'))输出:zhangp...
2019-06-11 23:10:27 2852
原创 Android battery data sample
public class OBatteryManager extends Manager { private BatteryBroadcastReceiver mBatteryBroadcastReceiver; private ArrayList<BatteryStatusListener> mBatteryStatusListeners; public ...
2019-06-09 23:14:57 336
原创 Java架构设计:状态机模式连接适配器调度复杂任务
Java架构设计:状态机模式连接适配器调度复杂任务假设现在系统架构中定义了一批状态机关键值,每一个状态机关键值对应一个任务的某些执行调度模块(函数),而这些执行调度模块又要执行相应的逻辑回调(接口)。设计目标:支持扩展和高度解耦。现在以Java设计模式中的状态机模式为主体,各模块之间尽可能解耦,在用适配器把状态机关键值与任务的执行调度,已经相应的逻辑回调连接起来。为此架构设计建立抽象模...
2019-06-08 23:26:26 1399
原创 Python正则从气温文本数字混合字符串提取温度数值
import restr_pat = re.compile(r'-?[\d]+[.]?[\d]*')text = '低温 -3C 高温 6C ; 低温 -2.3C 高温 ; 2.0C 低温 -12.3C 高温 22.0C'print(str_pat.findall(text))输出:['-3', '6', '-2.3', '2.0', '-12.3', '22.0']...
2019-06-07 23:33:33 1184
原创 Java设计模式:状态机模式,以屏幕缩放为例
public abstract class State { public abstract void display();}public class Screen { private State currentState; public Screen() { currentState = new NormalState(); } public void set...
2019-06-06 00:01:05 522
原创 Android cpu data sample
public class CPUManager extends Manager { public CPUManager(Config config) { super(config); } /** * 获取CPU型号。 * * @return */ public String getCpuName() { ...
2019-06-04 23:34:16 257
原创 Java设计模式:工厂方法模式
public interface Factory { Product makeProduct();}public class MyFactory1 implements Factory { @Override public Product makeProduct() { Product product = new MyProduct1(); return pr...
2019-06-03 23:44:12 510
原创 Python网页爬虫selenium,chromedriver之二
由于爬虫的敏感性,本文隐藏掉具体的站点信息:import timeimport requestsimport randomimport loggingfrom selenium import webdriverlogging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(l...
2019-06-02 23:43:16 537
链家2020年9月二手房数据
2020-12-10
strava_com_sample_utf8.xls
2020-12-10
digital-7字体(LED数字样式字体)
2017-09-05
MaterialDesignLibrary_Code and Lib合集
2015-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人