自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

空之境界

技术随笔

  • 博客(123)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 Go语言实战 读书笔记

这篇文章是我看《Go语言实战》时记得备忘录,如果有不对的地方,请大家指正。go语言定性Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。GO是静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高。Go 语言是一种静态类型的编程语言。这意味着,编译器需要在编译时知晓程序里每个值的类型。如果提前知道类型信息,编译器就可以确保程序合理地使用值。这有助于减

2021-01-08 11:21:39 341

原创 DecimalFormat 在多语言环境下的crash及解决方案

问题场景当使用decimalFormat传入字符串参数进行格式设置,但是需要注意字符串是会根据语言环境自动进行修改的,在某些特定的语言环境下,字符串会变成意想不到的结果。比如波斯语,阿拉伯语,德语演示代码DecimalFormat df = new DecimalFormat("0.0000");String res = df.format((float) 1 / itemCount);在德语环境下".“会被自动修改成”,"导致df.format函数报错在阿拉伯语环境下"#"会被自动修改成别

2020-08-21 11:20:31 750

原创 简单工厂模式 工厂模式和抽象工厂模式

看了其他人的很多博客,死记硬背了很多术语,表达的时候总是有问题。念念不忘,终有回想,某一刻,灵光闪现,总结了几句这三种工厂模式的描述,可以供大家参考简单工厂模式在业务逻辑里面根据参数直接new不同的数据,也就是数据层和逻辑层直接交互工厂模式工厂模式,就是在数据层和业务逻辑中间加了一层,通过工厂类new具体的数据对象,返回给逻辑层抽象工厂模式其实就是在工厂模式的基础上,把多个类型的数据...

2020-04-30 11:02:22 279

原创 快速生成单例代码模版

目的最好的程序员一定是最懒的程序员,当你厌烦了敲样板代码,不想让宝贵的时间浪费在已经滚瓜烂熟的语句,那么不妨试一下使用模版代码。效果原理实际就是用了android studio自带的liveTemplate功能。步骤首先打开Settings->Editor->Live Template->点击红色圆圈处新增将以下代码复制到 Template text:编辑框中...

2020-03-12 20:55:37 373 1

原创 maven publish aar 打包第三依赖方法

问题描述aar打包到maven库之后,引用的时候发现报错,具体原因是aar包中的第三方库的类没有找到。问题分析:通过maven库引用aar包,之所以可以引用第三方依赖库,是因为同时打包生成的pom文件中包含了对第三方库的依赖,如果pom文件中没有对应依赖,则在使用方会报ClassNotFound异常。解决方案:既然知道了造成问题的原因,方案就很简单了,在生成pom文件的时候同时打包对应的...

2020-03-02 15:05:10 3266 1

原创 RxJava 错误处理操作符知识点总结

RxJava的错误处理机制感谢 RxJava 错误处理操作符(Error Handling Operators)RxJava中的错误处理操作符分为两种,catch,retryJava把Throwable分为两种,a. 一种是比较严重的系统问题,Error,比如OutOfMemoryErrob. 另外一种是异常,Exception,比如RuntimeException。c. 使用...

2020-01-06 14:52:38 282 1

原创 Unable to find method 'org.gradle.api.tasks.TaskInputs.file

在配置greenDao项目的时候,经常会遇到这样的问题,全部的提示如下Unable to find method ‘org.gradle.api.tasks.TaskInputs.file(Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;’.Possible causes for this unexpected error includ...

2019-11-06 11:41:58 5838

原创 检查json字符串用gson反序列化之后是否有空对象

使用场景gson转换之后的对象如果不经过检查就使用,很容易导致空指针错误。json中的每一个数据都单独做检查,就会导致代码冗长,而且不利于维护,因此我做了一个小工具,用来在gson对字符串转换完成之后进行校验,避免在使用对象的过程中出现问题。原理主要利用的是反射的方法,使用getClass()函数获得对象的类型,getDeclaredFields函数可以获得这个类的所有成员变量,包括私有的变...

2019-05-31 10:30:55 1010

原创 6个关键问题解析 HTML Builder

主程序代码fun main(args: Array<String>) { val result = html { head { title { +"HTML encoding with Kotlin" } } body...

2019-05-16 16:38:08 320

原创 RxJava学习笔记

RxJava学习RxJava学习笔记是什么异步比喻:就好比警察和小偷,警察是观察者,小偷是被观察者,小偷实行偷窃的行为就是事件,警察给小偷进行了改造,导致小偷在偷窃的时候就会通知警察过来抓捕优点简洁四大组件observable,被观察者observer观察者,subscriber观察者subscribe,订阅操作onNext,onError,onComplete,也就是事...

2019-04-17 18:26:55 214

原创 从xml布局文件映射到自定义View的两种方法

使用xml进行布局,然后映射到自定义View中进行事件绑定是现在最常用的画UI的方式。我一直以来的做法是,在java类的构造函数中inflate布局文件中的view,然后使用this.addView(view)的方法或者在inflate函数中进行关联。最近一个同事的做法让我发现还存在另外一种做法,虽然本质上差不多,但是中间涉及到的一些知识还是值得注意的。不知道你在开发过程中使用的是哪一种方式...

2019-04-17 18:23:01 1399

原创 TextView使用占位符设置内容

strings.xml 占位符作用:可以节省textview的个数,减少消耗。使用步骤strings.xml <string name="my_info">我叫%1$s,%2$d,不信可以%3$s一起玩!</string>layout.xml<TextView android:layout_width="wrap_content" android...

2019-04-17 17:49:50 789

原创 gradle使用笔记

gradle使用杂项minifyEnabled 表示不混淆,通常情况下,debug模式要设置为falsegradle导入aar步骤复制aar包到libs文件夹在应用的gradle文件中添加repositories { flatDir { dirs 'libs' }}在dependencies里面添加如下行,其中的yourAARfileName是你的aar包的...

2019-04-17 17:15:29 181

原创 numpy多维数组shape的理解

想了很多都没有找到简明的描述,找规律的话,大家一看就明白了(2,3) 表示两个一维数组,每个一维数组长度为3(2,3,4) 表示两个二维数组,每个二维数组有3个一维数组,每个一维数组长度为4(2,3,4,5) 表示两个三维数组,每个三维数组有3个二维数组,每个二维数组有4个一维数组,一维数组长度为5...

2019-03-29 15:43:51 2722 2

原创 Android使用Glide给图片加锯齿效果

效果,给图片顶部加上矩形图层思路:使用小型的图层重复来模拟锯齿状图形Glide版本:4.9.0Glide.with(this).load(bitmap) .transform(new SerrationTransformation(MainActivity.this)) .into(imageView);temp的示例:...

2019-03-01 18:29:42 1377

原创 Canvas Bitmap Paint 学习总结

Android开发者文档中关于绘图的描述The Canvas class holds the “draw” calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a...

2019-03-01 16:29:36 256

原创 解决vhr项目windows部署中文乱码的问题

前言windows安装之后运行其中的vhr.sql运行起来之后发现,部分中文乱码。归结原因,是windows的cmd命令行和powershell用的字符集是gbk,而vhr用的字符集是utf8。没有办法,只能创建了虚拟机把database服务器部署在了虚拟机里面。然后在主机上进行访问,

2019-01-10 22:13:55 486

原创 RxAndroid 学习笔记

这篇博客是学习RxAndroid过程中做的笔记,学习的博客为优美的异步nicolelili1的Rx相关文章概念FuncX X表示参数个数emit 发射retrofit 改造&amp;lt;? extends T&amp;gt;表示上界通配符,表示T和它的子类&amp;lt;? super T&amp;gt;表示下界通配符,表示T和它的父类响应式编程A=B+C A经过赋值之后,如果B的值改变了,A的...

2019-01-07 15:40:04 321

原创 android aidl使用方法和原理

AIDL设计原因跨进程通信IPC,以及跨进程调用RPC。节省工作量AIDL中的实现工具为了达到这个目的引入了IInterface,IBinder以及Binder类IInterface是什么:IInterface是一个interface,定义了一个asBinder函数。联想到什么:IInterface接口一定是和Binder一起使用的。/** * Base class for ...

2018-12-07 18:18:38 622

原创 从源码看Handler和Runnable Thread 以及HandlerThread的关系

Handler的构造函数Handler是Android中的概念,其构造函数有以下几种public Handler();public Handler(Callback callback);public Handler(Looper looper);public Handler(Looper looper, Callback callback);public Handler(boolean...

2018-11-29 18:14:58 206

原创 Service生命周期

Service生命周期相关函数onCreate()onStartCommand()onBind()onUnbind()onStop()onDestroy()两条线Bind和Start线bindService是为了在Activity中直接调用Service中的公共函数startService函数的作用是通过intent传消息调用service中的私有函数使用Bind时的...

2018-11-29 12:27:02 919 2

原创 在activity中调用service中的函数

不多说,直接上代码MainActivity.javapackage com.xxx.validatedemo;import android.app.Activity;import android.app.Service;import android.content.ComponentName;import android.content.Intent;import android....

2018-11-28 17:41:35 2507

原创 android 触点轨迹绘制(代码)

onTouchEvent函数:单点触控处理流程event是通过event.getAction()获得的,一般最少需要考虑下面这三种情况MotionEvent.ACTION_DOWN:手指 初次接触到屏幕 时触发。MotionEvent.ACTION_MOVE:手指 在屏幕上滑动 时触发,会多次触发。MotionEvent.ACTION_UP:手指 离开屏幕 时触发。多点触控ev...

2018-11-28 15:52:43 2547

原创 android sudio 3.0版本之后怎么查看函数消耗时间

3.0版本之后,曾经很好用的TraceView和DDMS没有了,Google更新了Profiler,但是很多功能的入口变得更深了,这里我说明一下新版本中查看函数运行时间的方法。首先点击如下图标打开Profiler,在程序中设置断点点击如下位置进入CPU模块开始录制,然后在断点结束,停止录制打开Top Down,选择Wall clock time查看各个函数运行所需的时间如图所示,sl...

2018-11-26 21:09:23 1323 1

原创 自定义View通过findviewbyid返回为null解决方法

findviewbyid 返回为null,这个问题一般说明想要找的view没有在对应的layout上面。今天遇到一个同样的问题,但是确定view已经在layout上,但是仍然返回为null。虽然最终找到了问题原因,但是过程艰辛。具体代码如下MainActivity.javapublic class MainActivity extends Activity{ @Override...

2018-11-21 15:35:59 5088 1

原创 C++ 代码和变量存储位置

栈:程序自动分配,编译器在需要的时候分配,不需要的时候自动清除的变量存储区堆:程序员手动分配由new分配的内存,需要自己在程序里面手动释放常量存储区:存放的是常量,不允许修改,编译时分配,程序退出时才销毁全局/静态存储区:全局变量和静态变量存储的地方,编译的时候分配内存,程序退出的时候才会销毁。这个区域的中存储的变量早就被默认为0。代码存储区:函数体等代码存储位置...

2018-11-16 17:03:08 1075

原创 c++ time相关知识

文章目录基本关系相关函数time()asctime()gmtime()localtime()ctime()mktime()settimeofday() 和gettimeofday()相关数据结构和结构体time_ttime_strtmtimevaltimezone实例基本关系time_t&amp;tm&amp;time_str之间的关系相关函数time()time()是最重要的一个函数...

2018-11-16 16:54:29 283

原创 C++ Binder机制学习

核心内容Binder机制的核心实际上和Android中的Handler发送消息的机制很像,在Binder中负责发消息的是继承了BpInterface的子类,负责处理消息的是BnInterface的子类发送消息的具体函数是remote()-&amp;amp;amp;amp;amp;amp;amp;amp;gt;transact();处理消息的具体函数是onTransact();基础知识BpInterface和BpBinder中的p表示的意思就...

2018-11-08 22:58:15 2288 4

原创 C++ 多线程pthread 学习笔记

本篇是我在学习C++多线程的时候做的笔记,主要记录的是基础的流程,部分代码实例,以及部分重点函数的说明。pthread 入口函数类型说明void * func1(void * t)void* 表示无类型指针void*作为函数参数,表示函数接收一个指针,不管是什么类型的指针都可以,但是传递之前要强制转换为无类型指针。基础流程pthread_t t1;//声明一个线程pthread_c...

2018-11-07 17:02:49 7513 4

原创 char数组和char指针的使用区别和一些注意事项

const用法const char* p;表示p是一个指向常量字符的指针char* const p;表示p是一个指向字符的常量指针,p是不允许改变的另外要注意的是const char* p等价于 char const *p也就是说const描述char和*p是等价的char* p的内存分配方式char* p_char=“123”;上面的代码相当于是在常量区存储一个&quot;123&quot;,然后...

2018-11-07 11:33:48 7311

原创 C++ 字符串转换

头文件#include &amp;lt;string&amp;gt;#include &amp;lt;stdio.h&amp;gt;c_str()函数C++标准库中的函数,作用是把字符串转变为字符数组以兼容C语言(C语言中没有string类型)atoi()函数C/C++标准库中的函数,作用是把字符串转换为数字,里面传递的是C里面字符数组,因此,如果是C++字符串,需要用c_str()函数进行转换类似的还有atof...

2018-11-06 10:21:01 1102

原创 使用char指针赋值引发警告deprecated conversion from string constant to ‘char星’

最近在做demo的时候遇到如下警告。warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]参考代码为:#include &lt;stdio.h&gt;#include &lt;string&gt;using namespace std;int main(){ char...

2018-11-06 10:17:29 1098

原创 指针和引用 作为函数参数

*和&amp;amp;* * 有两个作用,一个是作为标识符来表示这是一个指针(声明变量时的等号左边),也就是说存放的是地址,另外一个是作为运算符来取值(赋值等号左边)。int *p=NULL;int a = 1;p = &amp;amp;a;cout&amp;lt;&amp;lt;p&amp;lt;&amp;lt;&quot; &quot;&amp;lt;&amp;lt;*p&amp;lt;&amp;

2018-11-05 18:23:11 9170 1

原创 source insight 快捷键列表

快捷键可以在Options-&gt;Key Assignments里面对快捷键进行设置,这些快捷键很多都没有设置按键。你可以把配置好的快捷键导出之后放到其他设备上使用。我常用的快捷键快捷键说明对应快捷键删除整行ctrl+d选择整行alt+1跳转到文件搜索界面ctrl+o跳转到行尾end跳转到行首home跳转到文件末尾ctrl+end...

2018-10-26 11:17:45 2711

原创 函数模版和类模板的使用

templatetemplate用于重载(overriding),目的是让形参类型不同的函数可以共用一个类名或者函数名。最简单的使用,对一个函数进行重载,参数是可变的原型:template &amp;lt;class identifier&amp;gt; function_declaration;NOTICE:&amp;nbsp;&amp;nbsp;T也可以作为函数的返回值进行设置,并不一定是参数。例子:#...

2018-10-24 20:47:02 602

原创 类构造函数初始化列表

表现形式有三种当前类进行初始化,尤其是当成员变量是一个const或者一个引用类型class Demo{ private: int a; public: Demo(int a):a(a){};}需要在初始化列表中调用外部类成员的初始化函数#include &amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;gt;using namespace std;...

2018-10-24 20:31:45 312

原创 宏定义的用法

有五种用法,含有参数和不含参数,行尾都不用加分号#define &amp;amp;nbsp; &amp;amp;lt;标识符&amp;amp;gt;&amp;amp;nbsp; [&amp;amp;lt;替换列表&amp;amp;gt;]//类似于全局变量了//如果其他文件没有包含定义宏的文件,则在宏定义的位置结束,如果有包含,则到包含的文件结束#define LARGEST_NUM 1000#define &amp;amp;nbs

2018-10-24 20:29:02 838

原创 C++中函数的动态绑定

所谓动态绑定,其实就是接口的实现由派生类完全覆盖。就是说原本声明的类型是基类B,但是调用函数的时候执行的却是不同派生类(由初始化或者赋值的时候定义)D的函数。动态绑定出现的条件有两个只有虚函数才能进行动态绑定。必须通过基类类型的引用或指针进行函数调用。例子#include &amp;amp;lt;iostream&amp;amp;gt;using namespace std;class Base{ p...

2018-10-24 20:22:23 911

原创 gcc工具使用

预编译,编译,汇编操作-E进行预编译操作,生成.i文件,注意,这里的.c文件是main函数所在的文件cc -E test.c -o test.i-S只进行编译操作,不进行汇编,生成汇编文件gcc -S test.i -o test.s-c进行汇编操作,把生成的汇编文件转为二进制的目标文件gcc -c test.s -o test.o链接操作(1)静态链接:在这种链接方...

2018-10-24 20:18:33 864

转载 init.rc 官方文档

这篇文章是从8.0的安卓源码中拿出来的,源码位置是o-base/system/core/init/README.mdAndroid Init LanguageThe Android Init Language consists of five broad classes of statements:Actions, Commands, Services, Options, and Impor...

2018-09-27 14:37:19 630

apk反编译工具包

http://blog.csdn.net/sinyu890807/article/details/49738023 郭霖文章中推荐的工具包,包含apktool.bat apktool.jar dex2jar.zip jd-gui.exe

2016-09-23

Android反编译套装

http://blog.csdn.net/sinyu890807/article/details/49738023 郭霖的反编译工具推荐、包含jd-gui.exe apktool.bat apktool.jar dex2jar.jar

2016-09-23

js模块编程学习笔记

根据阮一峰博客中的相关文章学习js模块编程的笔记,如有疏漏,敬请谅解

2014-10-17

Android复习

一个菜鸟的安卓复习,大家看看就得了,还非得20个字,少了还不行。

2014-10-17

tcp&ip学习笔记

tcp/ip我自己总结的学习笔记,总结的很详细,列出了重点

2014-10-17

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

TA关注的人

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