
基础理论
文章平均质量分 83
byszy
专研Android,java,略懂经济、文学、钢琴。爱拼搏,爱生活,爱上海
展开
-
python性能优化思路与常用解决策略
1、使用生成器和列表解析一个普遍被忽略的内存优化是生成器的使用。生成器让我们创建一个函数一次只返回一条记录,而不是一次返回所有的记录,如果你正在使用python2.x,这就是你为啥使用xrange替代range或者使用ifilter替代filter的原因。一个很好地例子就是创建一个很大的列表并将它们拼合在一起。[python] view plainc转载 2014-11-12 11:42:33 · 1324 阅读 · 0 评论 -
Android资源混淆打包工具 - 让你的资源瘦瘦身
今天跟大家分享一个微信使用的资源混淆工具,可以混淆资源,更大的好处的可以为安装包瘦身。 相比混淆,很多人应该更关注瘦身,这个工具是怎么达到瘦身的效果呢? 1、将res/drawable/welcome.png混淆为r/s/a.png 2、利用7z深度压缩先不深究原理,我们来试试怎么用,尝尝鲜。 1、down一个最新AndResGuard的jar包 (解压缩下载的包,打开AndResGuar原创 2016-04-28 19:00:29 · 4536 阅读 · 1 评论 -
Android studio开发NDK
关于ndk的一些介绍与用途,简单做下介绍:Android NDK是什么NDK是一系列工具的集合。NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK可以自动地原创 2015-12-25 18:46:53 · 747 阅读 · 0 评论 -
sqlite优化之多表查询
今天在优化公司项目中,发现一个列表在离线加载时速度非常慢,加载1000条数据,竟然需要13s!!!跟了一下db层代码@Override public ArrayList<Task> loadMineTask(String userId, boolean noblongs) { .....//省略 Cursor cursor = db.rawQuery(sql,原创 2015-12-31 18:01:31 · 10533 阅读 · 0 评论 -
几道很有趣的面试题
2、String、StringBuffer与StringBuilder的区别java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。a.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。原创 2015-12-16 22:25:40 · 1937 阅读 · 1 评论 -
Android 使用Websocket
1.Websocket背景与功能简介传统的Android网络请求无法适应信息变化频繁的应用,比如金融证券的实时信息,Web 导航应用中的地理位置获取,社交网络的实时消息推送等。传统的请求-响应模式的 Web 开发在处理此类业务场景时,通常采用实时通讯方案,常见的是: 轮询,原理简单易懂,就是客户端通过一定的时间间隔以频繁请求的方式向服务器发送请求,来保持客户端和服务器端的数据同步。问题很明显,当原创 2015-10-26 13:17:32 · 1730 阅读 · 0 评论 -
JAVA垃圾回收机制
最近学习到了JAVA垃圾回收的相关知识,之前一直只是了解个大概,这里总结学习一下:相比C和C++,Java在执行效率方面确实很低,一方面,Java语言采用面向对象思想,这也决定了其必然是开发效率高,执行效率低。另一方面,Java语言对程序员做了一个美好的承诺:程序员无需去管理内存,因为JVM有垃圾回收(GC),会去自动进行垃圾回收。其实不然:1、垃圾回收并不会按照程序员原创 2015-06-11 10:07:41 · 657 阅读 · 0 评论 -
内存泄露分析手段
1.内存溢出后的Log是比较随机的报错,直接通过Log找错不可靠。2.通过ddms 查看音乐进程内存情况,反复操作,找到复现的可能(类似黑盒测试,当然会有一些更专业的工具如MAT帮助)3.找到复现路径,即点击进入播放界面很容易内存泄露,无法释放。4.音乐更改的UI比较大,替换的图片也比较多,之前有些背景图片可能达到几百KB(后面图片已经优化),首先怀疑是否是图片的处理不当,导致内存泄露原创 2014-06-25 09:38:24 · 850 阅读 · 0 评论 -
迭代与增量的共性与区别
在关于软件过程的书籍和文章里,增量、迭代可以说是如雷贯耳,但也带来了概念上的混淆,不知道他们有什么共同之处和区别,甚至以为是同一个概念。下面也实例来说明他们有什么相似之处与不同之处。 假设一个软件共有A、B、C、D、E五个功能,怎么来开发呢? 我们可以五个功能同时做,由粗到细,逐步求精,最终完成整个软件。整个过程可以是先做出A、B、C、D、E五个功能的原型,然后完成他们的基本功转载 2014-08-11 17:51:21 · 12717 阅读 · 0 评论 -
图文比较八种排序算法
最近在整理android的知识体系时,觉得有必要把计算机基础中常见的排序算法拉出来单独回顾下,同时对比下各算法的空间、时间复杂度,温故而知新。原创 2017-01-17 11:16:34 · 561 阅读 · 0 评论