- 博客(19)
- 问答 (2)
- 收藏
- 关注
原创 Android 平台下导入Netty
一个项目在Android端需要用到Netty,查看官网发现不是Maven仓库就是直接下载jar包,太不优雅。经过尝试终于用Gradle导入了仓库。在build.gradle中添加:allprojects { repositories { google() jcenter() maven { url "https://jitpack.io"...
2019-06-24 10:10:27 1316
原创 Rxjava 的一次普通订阅
RxJava一次普通的订阅会发生怎么样的故事Observable .create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> emitter) throws Exception { ...
2019-06-20 13:25:30 257
原创 Retrofit源码解析
本文是基于Retrofit2.6.0源码的应用于分析。Retrofit的应用定义一个网络请求接口public interface GitHub { @GET("/repos/{owner}/{repo}/contributors") Call<List<Contributor>> contributors(@Path("owner") String o...
2019-06-18 09:26:07 141
原创 Handler、Looper、MessageQueue的关系
在日常开发中我们经常用到Handler,用来处理、传递消息而Handler中内部怎么实现,它与Looper、MessageQueue到底有什么关系确说不上来。先看下大体流程图:MessageQueue内部维护了一个Message的队列,我们通过Handler将消息Message发送到Looper中的MessageQueue,通过不断循环的Looper从MessageQueue中取出消息进...
2019-05-07 21:01:34 182
原创 pyenv python管理工具
安装pyenv后,可以管理所有python版本1.下载 curl https://pyenv.run | bash2.配置pyenv 环境变量export PATH="/Users/haosiyuan/.pyenv/bin:$PATH"eval "$(pyenv init -)"eval "$(pyenv virtualenv-init -)"3.pyenv update 版本更新4...
2019-04-28 13:41:31 138
原创 Android Paint 你完全都了解了吗(二)
承接上文Android Paint 你完全都了解了吗(一)2、效果Paint效果类Api2.1、setAntiAlias设置抗锯齿paint.setAntiAlias(boolean alias)设置抗锯齿,默认关闭;或在实例化时设置Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);2.2、setStyle 设置填充模式Paint.Style...
2019-04-16 16:53:11 225
原创 Android Paint 你完全都了解了吗(一)
1、颜色1.1、基本颜色像素的基本颜色根据绘制的内容不同而有不同的方式:Canvas的颜色填充方法canvas.drawColor/drawRGB/drawdrawARGB()颜色直接写入方法中进行设置背景;canvas.drawBitmap()的颜色直接由Bitmap对象提供;绘制图形与文字的颜色则需要设置Paint。进入正题Pain设置颜色的方法分为两种:1.1.1、直接设置颜色p...
2019-04-16 15:34:16 478
原创 Android 跳转系统设置页面(持续更新)
通常我们有些情况下会引导用户跳转到系统设置页面,但是发现不同系统中跳转设置的方法不一样,这里总结了部分机型跳转设置。通常情况下: Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(Settings.AC...
2019-03-29 16:20:03 1017 1
原创 Android 手机制造商
通过 Build.MANUFACTURER 获取手机制造商,各大厂商具体如下private static final String MANUFACTURER_HUAWEI = "Huawei";//华为private static final String MANUFACTURER_MEIZU = "Meizu";//魅族private static final String MANUF...
2019-03-29 16:04:25 1177
原创 Android 需要申请的权限
记录下6.0以后需要手动申请的权限/** * 日历权限组 */ interface CalendarGroup { String READ_CALENDAR = Manifest.permission.READ_CALENDAR; String WRITE_CALENDAR = Manifest.permission.WRITE_C...
2019-03-29 15:10:48 522
原创 Android 常见问题汇总持续更新
#####3.291.今天在使用Aspectjx中遇到了 java.util.zip.ZipException: zip file is empty 这个异常通常遇到这个异常时应该是某个包为空为0kb。经排查这个0kb的包可能出现在插件生成的文件中,这个空包是很难定位的。这种问题基本上是用改插件的时候的代码错误或者插件的配置错误,这类bug很难定位到具体位置,只能逐类排查最后发现一个大小写错误导...
2019-03-29 14:52:31 126
原创 Android 应用程序的启动过程(一)
Zygote进程的介绍 基于8.0Zygote进程称之为孵化进程系统中所有的应用程序进程及系统SystemServer进程都是由Zygote进程通过Linux的fork()函数孵化出来的。Zygote进程的启动zygote进程对应的主入口文件为/frameworks/base/cmds/app_process/app_main.cpp的main()方法:int main(int argc...
2019-03-25 20:50:47 972
原创 Activity 的启动过程
Activity的启动流程图 记载 startActivity 到AMS 到Activity生命周期的OnCreate()
2019-03-18 21:21:10 104
原创 Android 下网络状态监听
最近在做网络监听的时候发现原来用的NetworkInfo 中好多方法已经过期,so 看了下SDK及文档现将最新方法记录下。//获取网络连接管理ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);...
2019-03-01 10:50:57 1638
原创 C++ Boost Iostreams
ostreams 库提供了一个从STL容器读取的简单方法:boost::iterator_range 实例可以直接附加到 filtering streams and stream buffers带过滤的流和流缓冲 上namespace io = boost::iostreams;int main(){ using namespace std; typedef my_so
2017-06-25 20:39:39 410
原创 CLion使用CMake 导入本地Boost库学习笔记
CLion使用CMake 导入本地Boost库学习笔记project(myboost)set(CMAKE_CXX_STANDARD 11)set(SOURCE_FILES main.cpp)#add_executable(myboost ${SOURCE_FILES})set(BOOST_ROOT "/Users/haosiyuan/Downloads/boost_1_64_0/boost")#
2017-06-23 11:25:48 2047
原创 android 6.0权限处理
6.0以前在清单中添加6.0之后就会遇到一些隐私权限不能光在清单中添加,还需要在前端申请权限ContextCompat.checkSelfPermission(this,Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED //检查是否有某个权限//申请打电话权限ActivityCompat.requ
2016-09-01 14:55:33 219
空空如也
Android 平台下关于图片识别颜色的问题。OPENCV 或者图像算法排除光照影响
2018-01-19
studio使用问题求助,都设置jvmargs=-Xmx1024m
2016-06-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人