- 博客(160)
- 资源 (8)
- 收藏
- 关注

原创 移动应用优化解决方案
前言移动应用优化是产品中非常重要,也是比不可少的一环。Android app优化主要包含size优化,性能优化,重构等。size优化,app减负是必不可少的一环。性能优化,提升UX体验的重要途径(当然Spec的定义也会直接影响UX)。性能优化主要关注重构:业务复杂度提示,需要重构提高易测性和扩展性,降低耦合其中性能优化又是特别重要的一环性能主要关注:launch ...
2018-04-12 10:07:35
640

原创 AppUniform 架构 - Clean Architecture
简介为什么需要架构?当项目非常庞大时,项目的可维护性,可扩展性,易测性显得尤其的重要。好的架构能够帮助我们更好实现:•易维护 •易测试 •高内聚 •低耦合Bob大神的Architecture is About Intent, not Frameworks. 个人理解是:架构应该是面向意图,而不是面向片段。因此在架构的分层最好依据不同的意图来划分。另外业务逻辑庞大的...
2018-04-03 11:39:33
473

原创 性能优化:目录
目录性能优化(一)方法概述性能优化(二)内存管理 & Memory Leak & OOM性能优化(三)Google典范之开篇性能优化(四)Google典范之Render实践性能优化(五)内存优化性能优化(六)卡顿监测性能优化:要点性能优化:工具性能优化实践Contact 优化 - 开篇Contact 优化 - size优化Contact...
2018-03-09 10:05:27
260
原创 Dalvik和ART的GC区别
Dalvik和ART的GC区别(转载)小结笔记Dalvik中GC的问题如下GC时挂起所有线程大而连续的空间紧张内存碎片化严重ART在ART中不需要挂起所有程序的线程(解决问题1)提供 LOS :large object space 专供Bitmap使用,从而提高了GC的管理效率和整体性能(解决问题2)ART里有moving collector来压缩活动对象,使...
2018-06-20 10:18:17
2261
原创 软件架构
软件架构(Software Architecture)就是软件的基本结构。MVX(X泛指C - Controller、 P - Presenter、 VM- View Model),具体是指MVP,MVC,MVVM。这三种是我们现在经常看到或讨论的UI架构模式。仅仅是表现层的架构(Presentation Pattern),不适合作为系统框架。文中所说的软件架构是指体系架构。发布于...
2018-06-15 16:40:08
321
原创 Android小知识点(三)
1. Java 9新特性2. ThreadLocal解决多线程不需要相互依赖的成员变量问题最常见的ThreadLocal使用场景为 用来解决 数据库连接、Session管理等3. Android 性能优化之String篇重用的StringBuilder在拼接动态字符串时,尽量用 StringBuffer(同步) 或 StringBuilder的 append,来减...
2018-05-08 13:48:38
341
原创 Android 性能优化 - Android Studio & MAT 如何分析内存
Android 性能优化 - Android Studio & MAT 如何分析内存 http://vivianking6855.github.io/2018/05/04/Android-optimization-AS-MAT/
2018-05-04 18:27:55
446
原创 GO语言之路 5 - 语法基础
[1] 语法基础直接follow这里:https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/02.2.md[2] Go Example,这里有很多例子 : https://gobyexample.com/slices[3] Go官网1)官网首页,可以直接在线运行code:https://go...
2018-04-28 16:51:35
294
原创 GO语言之路 - 目录
目录GO语言之路 1 - 学习准备 GO语言之路 2 - 学习计划 GO语言之路 3 - 基础 GO语言之路 4 - Hello, GO GO语言之路 5 - 语法基础持续更新中。。。
2018-04-27 15:42:40
2338
原创 GO语言之路 4 - Hello, GO
Hello,GO如果只是简单了解,不打算深入的话,可以试试在线:https://tour.golang.org/welcome/11. 打开VS Code创建一个新的文件夹hello,里面创建hello.go文件 (我这为了方便把dev文件夹加入了VS Code的workspace)package mainimport "fmt"func main() { fm...
2018-04-27 15:41:05
436
原创 GO语言之路 3 - 基础
GO基础1. 环境搭建按照Go Web 编程一步步配置https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/01.0.md也可以看无闻的视频入门教程:http://edu.51cto.com/course/1762.html集成开发环境我选的是微软的VS Code,因为它跟AS...
2018-04-27 14:45:44
280
原创 Android app 安全
App安全从一款被篡改的软件谈 Android App 的安全之路《Android攻防实战》读书笔记——保护App安全安全问题APP安全问题反编译APK反编译apk加固Apk源码的加固(加壳)原理解析和实现Android中的Apk的加固(加壳)原理解析和实现Android中的Apk的加固(加壳)原理解析和实现Android中对Nativ...
2018-04-27 11:10:19
493
原创 GO语言之路 1 - 学习准备
前言在学习GO语言之前,先去知乎上看了GO语言如何学习和为何学习GO语言。为什么要使用 Go 语言?Go 语言的优势在哪里?怎么学习 Golang?个人学习GO语言的原因是:个人规划每年学习一门新的编程语言在业界GO语言被讲的玄乎玄乎,据说它可以做从底层到前端的任何工作,有着GO = 接近C的运行效率 + 接近Python的开发效率学习资料准备官网:htt...
2018-04-25 17:09:47
656
原创 Android 小知识点 (二)
1. 解决依赖库冲突问题彻底弄清support支持库,以及v4 v7重复依赖问题深究Gradle管理依赖2. Android系统布局android.R.layout3. JRE 和 JDK 的区别是什么JRE可以支撑Java程序的运行,包括JVM虚拟机(java.exe等)和基本的类库(rt.jar等)JDK可以支持Java程序的开发,包括编译器(javac.ex...
2018-04-25 10:59:14
180
原创 Android图片解决方案
常用的图片库加载和缓存库Picasso: Square公司Fresco FacebookGlide : 2014年google I/O大会上发布的官方推荐 Glide和Picasso对比Volley比较Android 三大图片加载框架的对比——ImageLoader,Picasso,GlideAndroid图片加载库的选择与如何封装? 基于七牛和fresco的一...
2018-04-10 16:42:18
184
原创 Android网络编程
常用库HttpClient 基本不再维护,官方推荐Android开发用HttpUrlConnection.HttpURLConnection HttpURLConnection是一种多用途、轻量极的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序 google HttpURLConnection Volley Volley是一个简单的异步http库。自带缓存,支...
2018-04-10 16:41:58
147
原创 Android ClassLoader 小结
简介Android的ClassLoader和Java的ClassLoader有一些差异:Java中的ClassLoader可以加载jar文件和Class文件(本质是加载Class文件)Android中ClassLoader加载的不再是Class文件,而是dex文件(DVM,ART都是如此)不过都是遵循双亲模式:有解析请求会先交给父类,如果父类无法解析才会往下传Java...
2018-04-09 11:46:07
771
原创 Android Studio 生成jar包
简介环境 AndroidStudio 3.1今天在写测试ClassLoader的时候,需要生成jar包。但是AS 会自动为library生成aar。下面记录生成jar包流程,以备后用步骤生成jar包流程:File -> New -> New Module 创建类库Gradle中找到”transformClassesAndResourcesWithSyncLi...
2018-04-09 10:17:42
361
转载 [Tool] android gradle tools中的compile,implement, api指令
android gradle tools 3.X 中依赖,implement、api 指令
2018-03-29 10:23:02
259
原创 Android 小知识点 (一)
Android 查看每个应用的最大可用内存Android退出应用最优雅的方式android 输入法弹出时不能挡住按钮把布局顶上去WebViewJS和Java的安全交互Android混合开发之WebViewJavascriptBridge实现JS与java安全交互性能Android WebView:性能优化不得不说的事腾讯TBS X5 WebView的简单...
2018-03-27 12:55:25
214
原创 Java小知识点
浅谈Java的匿名类(https://www.cnblogs.com/caipc/p/5930236.html)不能有静态的任何东西不能定义构造函数不能定义接口Java内部类详解线程的生命周期Runnable, Callable, FutureTask理解Android多线程里面三种任务Runnable和Callable和FutureTask的用法Run...
2018-03-24 20:42:43
170
转载 权限管理小结
权限管理小结app的内置存储(data/data) app不需要申请写权限。其他app无权限访问,除非rootapp的扩展存储 (sdcard/Android/data/),Android 4.4 之后不需要申请写权限,API < 19还是需要申请公共存储( sdcard/your folder/)需要申请写权限 <uses-permission androi...
2018-03-22 14:49:31
175
原创 数据结构和算法
算法知识图谱算法转载:算法复杂度[算法] 常用数据结构小结转载:常用数据结构和算法操作效率的对比总结Java数据集总结ReferenceAndroid程序员面试会遇到的算法十大经典排序算法...
2018-03-21 14:21:36
241
原创 常用数据结构小结
常用数据结构总结 数据结构 特性 备注 数组 Array 一维,多维数组;线性排列的数据 有序数组可以采用二分查找,提高效率 栈 Stack 先进后出(FILO),后进先出(LIFO) 在特定时刻只有一个数据项可以被读取或者被删除 队列 Queue 先进先出(FIFO) 在特定时刻只有一个数据项可以被读取或者被删除 单向...
2018-03-21 14:03:53
150
原创 Java数据集总结
Java数据集关系图(来自网上)红色是接口,绿色是实现。其中HashSet是通过内部持有HashMap实现TreeSet是通过内部持有TreeMap实现除了上述基础数据集,还有一些其他数据集LinkedHashMap 继承HashMapLinkedHashSet 继承HashSet,通过内部持有LinkedHashMap 实现;线程同步的LinkedBlocking...
2018-03-21 13:51:55
2577
原创 Java Object equals()和hashCode()
equals()和hashCode()区别 比较项 equals() hashCode() 从哪儿来 Object类 Object类 本质 两个对象里面包含的值(对象的引用或值类型的值) 对象实例的哈希码 使用场景 判别相等 批量数据处理,判断相等的预判 备注 hashCode()相等,equals()不一定相等 ...
2018-03-20 15:24:58
205
原创 Android 动态加载技术(插件化)
Android 动态加载技术(插件化)http://vivianking6855.github.io/2018/03/15/Android-Plugin/
2018-03-20 14:06:52
242
原创 ART 和 Dalvik
ART 和 Dalvikhttp://vivianking6855.github.io/2016/10/14/Android-ART-Dalvik/
2018-03-20 14:06:06
178
原创 Java的抽象类实例化
简介《Java编程思想》书中定义抽象类:“包含抽象方法的类”。即如果一个类含有抽象方法,则称这个类为抽象类。 抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以一般不能用抽象类创建对象。// 抽象类public abstract class ClassName { // 抽象方法:只有声明,而没有具体的实现 abstract voi...
2018-03-19 14:35:37
28635
1
原创 [进阶] Binder理解和源码解析
基础知识Android进程间的通讯没有沿用Linux的原有的通讯模式,而是采用新的通讯模式Binder.先了解下Linux原有的通讯方式:Linux进程间的通信方式和原理进程通信的应用场景一般包含数据/资源共享,数据传输,通知事件,进程控制。主动被动都有了。Linux原有的几种通信方式pipe管道消息队列(Message)信号量(Semaphore)共享内存(Share...
2018-03-16 14:14:19
467
原创 [进阶] Android Fragment
Fragment 生命周期Fragment必须总是绑定到一个activity中。虽然有自己的生命周期,但同时被Activity的生命周期直接影响结合代码学习FragmentAndroid Fragment...
2018-03-16 13:57:22
215
原创 [进阶] Android设计模式 二
结构型模式7种6. 适配器模式(Adapter Pattern)简介基于现有类所提供的服务,向客户提供接口,以满足客户的期望。也可以理解为将一个类的接口转换成客户希望的另外一个接口。适配器模式的用意是要改变源的接口,以便于目标接口相容。但是过多的使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是A接口,其实内部被适配成了B接口的实现,一个系统如果...
2018-03-16 10:48:48
177
原创 [进阶] Android设计模式 三
行为型模式11种13. 观察者模式(Observer Pattern)– Android常用模式简介一个对象发生改变时,所有信赖于它的对象自动做相应改变。例如下面的订阅感兴趣事物场景天气预报短信服务,一旦你订阅该服务,你只需按月付费,付完费后,每天一旦有天气信息更新,它就会及时向你发送最新的天气信息。杂志的订阅,你只需向邮局订阅杂志,缴纳一定的费用,当有新的杂志时,...
2018-03-16 10:43:48
310
原创 [进阶] Android设计模式 一
前言android开发中,必要的了解一些设计模式又是非常有必要的。 Android开发的设计模式,基本设计思想源于java的设计模式java的设计模式有N多种,据不完全统计,迄今为止,网络出现最频繁的大概有23种。设计模式的出现就是为了高质量、易维护和复用性强的代码什么是设计模式?基本定义:设计模式(Design pattern)是一套被反复使用的代码设计经验的总结。 ...
2018-03-16 10:43:09
182
VS90-KB948127.exe
2010-05-12
跟我一起写 Makefile
2009-07-01
语料库研究与应用综述
2009-07-01
特定人语音识别技术在汽车控制上的应用
2009-07-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人