- 博客(134)
- 资源 (22)
- 收藏
- 关注
原创 【kotlin基础】let apply with run also 函数的区别
import android.util.Logclass TestApplyLetWithAlso { val TAG = "TestApplyLetWithAlso" fun test() { var stu = Student() //let,可以配合可空性 “?”来使用,返回值是语句块的最后一行的返回类型,若最后一行语句无返回值,则整个let语句块也无返回值 stu.name?.let { Log.i(TAG.
2022-03-04 16:23:06
1905
原创 The exception was not handled due to missing onError handler in the subscribe() method call
浪费了两个小时,因为把()写成了{}
2021-12-30 14:36:22
2659
原创 AndroidStudio使用外部公共工具库
AndroidStudio使用外部公共工具库欢迎使用Markdown编辑器随着开发时间的积累,很多人都积累自己的公共开发库(比如lib_util、lib_permission、lib_network等),以便随着积累的增加,以后可以实现快速开发一个app工作,至少可以少写一些重复代码。我也有这种需求,今天来讨论怎么在Android Studio中实现依赖自己的公共开发库。一般分为2种实现方式,一种是使用git的submodule,另外一种使用本地文件系统的路径依赖。submodule实现参考:h
2021-07-31 12:41:59
512
原创 Android集成FFmpeg
Android集成FFmpeg参考:https://www.jianshu.com/p/2c9918546edc上一篇文章我们在mac下编译出了供Android平台使用的FFmpeg产物,这篇文章继续讲怎么在Android平台上集成FFmepg。本文是参考别的文章写的,出处已在文首和文末处说明。之所以说只参考,而不是转载,一是我对原文进行了精简,二是因为我在自己尝试时发现了两个问题,并解决了这两个问题,可以说是一种补充吧。实现步骤一、新建工程在Android Studio中选择新建Native
2021-07-22 18:11:28
784
4
原创 Mac下编译FFmpeg
编译FFmpeg转载整理自:https://www.jianshu.com/p/350f8e083e82完全按这个文章来,可以顺利编译出FFmpeg的SO文件。编译主要目录编译工具链目录:AndroidSDK/ndk/{ndk版本}/toolchains/llvm/prebuilt/darwin-x86_64/bin交叉编译环境目录:AndroidSDK/ndk/{ndk版本}/toolchains/llvm/prebuilt/darwin-x86_64/sysroot在 tool
2021-07-21 21:11:33
392
原创 读书202101『股票大作手回忆录』
2021年看的第一本书《股票大作手回忆录》,拖了好久,总算看完。讲述了20世纪20年代的以为纽约的股票大作手,杰西-利弗莫尔的生平故事。主人公从小有一定的数学天赋,对数字记忆特别擅长。14岁在经纪行做行情抄写员,因为他的数学天赋,所以刚开始在体系不完善的经纪行总能取得盈利,后来因为盈利太多,被经纪行ban了。只能去纽约的股票交易所闯荡,从此几度破产,又几度东山再起。书中分享了很多主人公的交易原则和故事,但是,最后的最后,主人公还是在失败抑郁中吞枪自杀了。看完的感受就是,还是老实搬砖吧,幸福快乐,在这个物
2021-04-23 23:53:13
188
原创 2020小结
工作经历年初的疫情,在家办公了一个多月。年初公司的发展也很不确定,裁了一些人,后来年中换了广告来源,业务有所起色,好像又恢复了正常。总的来说,这一年工作上没有什么波浪。自己也有2个阶段比较专心的学习。还是有所收获和进步的。电影在家看《美国队长2》 讲述神盾局中被九头蛇渗透,最高长官即九头蛇成员的背景下,美国队长被陷害然后反抗,最后化解了一场危机的故事,没有什么出彩的地方,估计过一段时间我就又会把剧情给忘了吧。《奇异博士》 一个事业成功的医生,出了车祸,为了寻求医治双手之道,接触到了法术
2021-01-04 15:13:14
154
原创 读书笔记——C++语言程序设计
第二章 C++简单程序设计P27:字符串中的每个字符占一个字节,并在末尾添加’\0’作为结尾标记。sizeof("abc"); //4P32:sizeof运算符用于计算某个类型的对象在内存中所占的字节数。按位与&00000011 & 00000101 = 00000001按位或|00000011 | 00000101 = 00000111按位异或^00111001 ^ 00100011 = 00010011P37:"<<"是预定义的插入符,作用在流类对象co
2020-06-30 10:03:29
309
原创 读书笔记——潜规则
知道潜规则这边书,来自B站半佛老师的推荐。看过以后,才发现这本书已经出版近20年了。书中举例了很多中国历史上的”潜规则“。核心论述观点是,每个人都在为了自己计算着,趋利避害的行使着潜规则。 书中有一个章节名为”新官堕落定律“,由于看书过程是分散到一周的时间里的,所以我在路上有时会回忆揣摩书中情节。看到这一章时,想到了一句名言“人不为己,天诛地灭”。以前觉得,这是一句偏激的话,是一句叫人自私自利的话。看过这章“新官堕落定律”之后才发现,所谓的人不为己,每个人都为自己考虑,才能合乎周围环境的规则。正如在
2020-06-11 11:01:19
239
原创 读书笔记——Flutter实战
第一章 起步1.2:初识Flutter静态编译与动态解释:静态编译的程序在执行前全部被翻译为机器码,通常将这种类型称为AOT (Ahead of time)即 “提前编译”;而解释执行的则是一句一句边翻译边运行,通常将这种类型称为JIT(Just-in-time)即“即时编译”。是否为AOT的标准就是看代码在执行之前是否需要编译,只要需要编译,无论其编译产物是字节码还是机器码,都属于AOT。为什么Flutter选择Dart作为开发语言?Dart运行时和编译器支持Flutter的两个关键特性的组合
2020-06-11 10:22:19
1270
原创 读书笔记_HeadFirst-设计模式
title: 读书笔记『HeadFirst-设计模式』date: 2019-05-12 13:44:35tags: [设计模式,java]时隔5年,重读《Head First 设计模式》,这本书写的很很好,语言生动,举的例子很形象。看着很顺畅,下面按内容顺序略做笔记。策略模式设计原则一:把会变化的部分取出并封装起来,以便以后可以轻易地改动或扩展此部分,而不影响不需要变化的其他部分。策...
2019-05-12 13:52:00
148
原创 Java『设计模式』
在看源码的过程中经常会遇到一些设计模式,下面做一下记录责任链当你想要让一个以上的对象有机会能够处理某个请求的时候,可以使用责任链模式。链中的每个对象扮演处理器,并且有一个后继对象。它可以处理请求,也可以把请求转发给后继者。责任链的优点:将请求的发送者和接收者解耦可以简化你的对象,因为它不需要知道链的结构。通过改变链内的成员或调动他们的顺序,允许你动态地新增或删除责任。责任链的缺...
2019-05-04 11:04:49
137
原创 Retrofit『使用』
Retrofit的优点可以配置不同HTTP client来实现网络请求,如okhttp、httpclient等将接口的定义与使用分离开来,实现结构。支持多种返回数据解析的Converter可以快速进行数据转换。和RxJava集成的很好因为容易和RxJava结合使用,所以对于异步请求,同步请求也不需要做额外的工作。Retrofit是基于OKHttp简单使用配置依赖在module...
2019-04-30 20:41:53
247
原创 Android『消息传递』
Hanlder构造方法在创建Handler时,Handler在其构造方法中***尝试从当前线程(创建Hanlder实例对象的线程)的ThreadLocal中取到Looper对象***,并将该Looper对象赋值给当前Hanlder对象,同时还会将Looper对象的MessageQueue引用赋值给当前Handler。//Lopper.myLooperpublic static @Nullab...
2019-04-22 21:37:40
154
原创 Java『数据容器』
HashMap先从Java中Object的hashCode()方法说起,从方法注释的第一行可以看到该方法的存在主要是为了支持HashMap://Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by Ha...
2019-04-22 21:36:48
185
原创 读书笔记『Kotlin实战』
P18:在Kotlin中没有声明数组类型的特殊语法,数组就是类P19:在Kotlin中if是有结果的表达式fun mac(a:Int,b:Int):Int{ return if(a>b) a else b}P25:自定义访问器class Retangle(val height:Int, val width:Int) { val isSqual:Boolean gen()...
2019-04-09 15:57:23
386
原创 Java基础
JVMJVM是运行Java字节码的虚拟机。JVM有针对不同系统的特定实现,目的在不同的系统平台上运行相同的字节码。.java文件经过JDK的javac编译为.class文件,.class文件又被JVM编译成机器可执行的二进制机器码。我们需要格外注意的是 .class->机器码 这一步。在这一步 jvm 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢...
2019-04-09 15:55:40
162
转载 Ubuntu上搭建WordPress博客系统
一、安装需要的软件(本段转自文章:https://blog.csdn.net/qq_32666555/article/details/79358013)一、ubuntu lamp安装环境搭建 (所有代码中出现的-y只复制之前的代码ctrl+c,然后再putty登录云主机后直接右键就复制了,-y表示在安装时需要确定的,输入y即可。) 1.系统升级和更新源 sudo apt-get upd...
2018-08-22 17:02:50
1230
原创 MyEclipse重命名修改Deployment
MyEclipse中重命名复制的项目后,项目的部署地址是没有自动改变的,此时需要手动添加Deployment,参考MyEcplise给出的提示: 具体执行是:右键项目>MyEclipse>Add andRemove Project Deployments。
2016-10-28 16:58:10
663
原创 Android Studio多项目共享一个BaseLibrary
开发中可能会慢慢形成自己的基础类库,里面包含一些经常用到的方法,组件,甚至像城市列表选择页面这样的界面。我们希望能够把这些常用的代码领出来作为一个独立的库,新建一个项目是直接引用进来,可以节约不少时间。 事实上我有这样一个类库,只是每次新建一个项目时,需要手动import一次,这还好,问题时,这个基础类库在不断的变得更加丰富,有时会发现旧项目中引用的BaseModule并不是最新的,有些代码可能有更优化的解决方案。 所以需要有一个类库,是被多个项目同时“引用”的,而不是复制一
2016-10-26 17:58:10
2804
1
原创 Android图片遮罩模式PorterDuffXfermode的使用
工作中有时会用到图片遮罩的功能,如:自定义进度条、自定义图标形状等。这些可以通过使用PorterDuffXfermode来实现。具体过程: 一、自定义组件,重写onDraw方法 二、创建一个Bitmap 三、在Bitmap上绘制第一个图层 四、在Bitmap上绘制第二个图层 五、在Canvas上绘制Bitmap
2016-09-30 16:50:55
640
原创 解决Android Studio编译慢的一种优化方法
最近发现使用Android Studio编译项目,非常慢,每次编译运行需要2分钟。又遇版本上线,郁闷。早上google一下,找到了问题所在及解决方案。问题起因:项目因为引用了比较多的类库,所以使用了MultiDex解决64k问题。这就导致了每次编译耗时两分钟的原因。解决方案:在主module的build.gradle中使用Flavor区分编译过程,在开发模式下设置minSdkVersion 21,这样可以避免MultiDex编译过慢的情况。
2016-09-27 14:43:48
3819
原创 Android中NoClassDefFoundError异常解决记录
随着Android项目的不断增大,引用的类库不断增多,使用Android Studio编译Android项目时可能会遇到NoClassDefFoundError的错误提示,从而导致项目安装包的不完整,即有些界面能运行,有些用到类库的功能却会闪退,此时,需要考虑是否遇到了64k问题。即安装包中包含的方法超过了64K个,解决方案如下: 一、在主Module的build.gr
2016-08-30 10:37:05
2136
原创 Android中OKHttp保存Cookie并传入WebView
Cookie是服务器为客户端分配的一个键值对的表,和session不同的是cookie存储在客户端。服务器通过Response.addCookie()为客户端添加Cookie数据,再从Request.getCookie()中获取数据。 在Android开发中,有时我们需要调用http的接口登录帐号,然后使用cookie作为登录标记来进行网页浏览。此时就需要从http请求中取到cookie数据并保存起来,在使用webView进行页面访问时再将cookie数据设置到webview上。本文以OKH
2016-01-14 12:01:35
7982
6
原创 Alogrithm_百元组合问题
/** * 拆分100元问题 * 描述:现有若干1元,5元,10元,20元,50,求有多少中组合能组成100元。 * 求解思路一:通过for循环遍历所有可能的组合 * 求解思路二:问题拆分 * S100 = S99 + S95 + S10 + S20 + S50 * S50 = S49 + S45 + S40 + S30 + 1 * S20 = S19 + S15 + S10 + 1
2015-12-17 22:27:55
560
原创 Android_Property Animation
你可以给任意对象定义一个Animation并使之移动,不管这个对象是否绘制在屏幕上。可以通过指定希望发生动画的属性的改变值及持续时间来完成Animation。一个Property Animation可以指定这些属性: Duration:指定动画的持续时间,默认时间长度为300毫秒。 Time interpolation:指定插入函数,即属性和当前时间之间的函数。...
2015-12-17 17:15:43
360
原创 AndroidlaunchMode
launchMode是一条决定Activity如何载入的命令,有四种载入模式可以通过Intent的FLAG_ACTIVITY_*参数来决定一个Activity启动时的行为。他们分别是:standard,singleTop,singleTask和singleInstance。默认模式是standard。 四种模式可以分为两组,standard和singleTop为一组,s...
2015-12-16 16:52:47
527
原创 Java Tips
一.HashTable是线程安全的,很多方法都是synchronized方法,而HashMap不是线程安全的,但其在单线程程序中的性能比HashTable要高。StringBuffer和StringBuilder类的区别也在于此,新引入的StringBuilder类不是线程安全的,但其在单线程中的性能比StringBuffer高。
2015-06-16 15:43:35
494
转载 Java线程_wait,sleep,notify,notifyall,join
转载自百度知道:http://zhidao.baidu.com/link?url=kixxxGWeNN_taXcThtcDybcxnzsv0Z-BSdMEN1YVi3lAkZx_odFw4vNsDAeEvf57O-u47Kn7Vkd_59AAsE__vq1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是如果有Sync
2015-06-09 13:52:59
484
转载 java-String中的 intern()(
转载自:http://blog.sina.com.cn/s/blog_69dcd5ed0101171h.html1. 首先String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。2. new String()和new String(“”)都是申明一个新
2015-06-02 07:29:27
416
原创 读书笔记_Java程序性能优化_Chap1.概述
来,拿出抄书的精神看一本书!今次要看这本《Java程序性能优化》,计划在本月底完成,现在是3月5号。OK,Let's start our class! 程序性能的参考标准: · 执行时间:一段代码从开始运行到结束运行所使用的时间。 · CPU时间:函数或者线程占用CPU的时间。 · 内存分配:程序在运行时占用的内存空间。 · 磁盘吞吐量:描述I/O的使用情况。 · 网络吞吐量:描述网络的使用情况。 · 应时间:
2015-03-05 14:49:45
624
原创 2014工作项目总结
一年即逝,稍作回顾。2月份来的上海,找了份外派到中国平安的工作,做了一个项目,叫"自助宝"。项目比较简单,第一版2个人做了1个半月的时间。不过这是第一个我负责搭框架,负责规划的项目。后面项目上线了,每月也有4、5百万的保费产生。项目运行效果如下:8月底,同事介绍了个项目给我,也就是所谓的私活。正巧那段时间平安的工作比较轻松,除了每两周的日常版本迭代以及领导时不时突发奇想的需求外,也
2015-02-11 15:48:48
1399
转载 GBK,Unicode,UTF-8格式互转(转)
public class UTF2GBK { public String gbk2utf8(String gbk) { String l_temp = GBK2Unicode(gbk); l_temp = unicodeToUtf8(l_temp); return l_temp; } public S
2014-09-06 15:47:12
1159
转载 Android的内存管理
相信一步步走过来的Android从业者,每个人都会遇到OOM的情况。如何避免和防范OOM的出现,对于每一个程序员来说确实是一门必不可少的能力。今天我们就谈谈在Android平台下内存的管理之道,开始今天的主题之前,先再次回顾两个概念。内存泄漏:对象在内存heap堆中中分配的空间,当不再使用或没有引用指向的情况下,仍不能被GC正常回收的情况。多数出现在不合理的编码情况下,比如在Act
2014-07-24 16:23:04
760
转载 谈谈我对攻读计算机研究生的看法(转一个牛人文章)
就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。 如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择。因为计算机学院才能让你在理论上更上一层楼。软件学院从教学计划上就没有把你往这方面带。当然能不能更上一层楼最终还是完全取决于你自己。需要特别说明的是,工作经验并不一定等于开发经验,我见过很多工作2-3年
2014-04-09 21:39:19
805
原创 Android_仿支付宝账单列表(头部停留及分页数据加载)
没有办法,米公设计的一个UI是stickyheaderlist(头部停留)和分页加载的整合,笔者原以为是米工自己拍着脑袋想出来的,还想进一步讨论一下,后来才发现淘宝也是这么做的,那好吧,做呗。 下面分别介绍一下StickyHeaderListView(这么长!后面都简写成StickyLV好了)和分页加载: 一、StickyLV(头部停留listview) 其实这个没什么好说的,因为是开源组件,github上都有介绍和demo,这里就简单的讲一下几个关键的地方吧
2014-03-18 22:17:13
6697
7
原创 算法学习_字符匹配算法(BF,KMP,BM)
本文的内容都是来自<Cpp数据结构原理与经典问题求解>一书,除了一些笔者自己的理解描述外,并无原创。仅作笔记之用。 转入正题,首先是问题的定义,这里的字符匹配指的是连续的子串匹配,而不是公共子序列。举例:asdfgge和dfg是匹配的,因为asdfgge包含了dfg。问题就是判断子串A中是否包含子串B。 概要的介绍了BF,BM,KMP三种字符串匹配算法。
2014-03-11 21:47:48
1497
原创 数据结构_红黑树
今年的第一篇博客,距离上一篇博客竟然已经一个月了。最近都静不下心来学习 ,一则刚过完年,二则刚换工作。好了,不扯了,转入正题吧。 今天讨论的是红黑树,红黑树有一个特点:保证了树结构是基本平衡的(即没有一条路径会比其他路径长出两倍)。除了这个特点之外,红黑树和一般的二叉搜索树差距不大。 问题是怎样在不断的进行插入、删除等动态操作时,保持树的基本平衡呢?从直觉上可以推测出只有红黑树的根节点在插入、删除节点的过程中不断改变才可能实现树的高度平衡,事实上也的确如此。这一点是和普通二叉树
2014-02-25 19:09:21
1100
原创 农历2013年总结
马上要过年了,简单的回顾概括一下农历2013吧,主要分为学习、工作、生活、锻炼这几个方面。 学习:1、从年中开始半年时间在当当上买了近1000元(准确说是960元)的书,主要以软件相关为主,除此之外还有《中庸》《素描》《相对论》《平行宇宙》之类的闲书。遗憾的是绝大多数书都只是买了而没有翻看。看完了得有<Head First设计模式>、<C++程序设计>、<算法设计与分析>。目前在读的是<算法导论>、<重构>。总的来说,今年的买书是以冲动为基础的,看到哪本书不错就买。有点像女人买衣服一样。。明年会
2014-01-24 09:25:41
2314
19
puzzle15_v2代码
2013-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人