六大原则

单一原则:简单地说就是一个类只做一件事。如果你遵守了这个原则,那么你的类就会划分的很细,每个类都有比较单一的职责,这不就是高内聚、低耦合么!单一职责原则并不是一个类只能有一个函数,而是说这个类中的函数所做的工作是高度相关的,也就是高内聚。 依赖反转原则:设计和实现要依赖于抽象而非具体。 里氏替...

2018-03-13 14:22:03

阅读数 193

评论数 0

ReentrantLock

ReentrantLock是可重入锁,或者说其持有一个锁计数器,当已持有所的线程再次获得该锁时计数器值加1,每调用一次lock.unlock()时所计数器值减一,直到所计数器值为0,此时线程释放锁; 一般try前执行lock(),try中为受保护代码段; finally中执行unlock()可...

2018-03-13 10:27:39

阅读数 116

评论数 0

Android 系统稳定性 - ANR(二)

1.2 如何分析ANR问题 引起ANR问题的根本原因,总的来说可以归纳为两类: 应用进程自身引起的,例如: 主线程阻塞、挂起、死循环 应用进程的其他线程的CPU占用率高,使得主线程无法抢占到CPU时间片 其他进程间接引起的,例如: 当前应...

2017-11-29 15:26:56

阅读数 244

评论数 0

Android 系统稳定性 - ANR(一)

如果你是一个Android应用程序开发人员,你的人生中不可避免的三件事情是:死亡、缴税和ANR。这么说是夸张了,但是由于Android本身的设计,以及应用程序和系统在开发过程中的缺陷,经常会在测试过程中遇到各种各样的ANR问题。在功能性的测试中还少一些,主要是在压力测试中(例如Monkey测试)会...

2017-11-29 15:25:13

阅读数 210

评论数 0

Android debuggerd 源码分析

debuggerd 简介 Android系统自带一个实用的程序异常退出的诊断daemon debuggerd。此进程可以侦测到程序崩溃,并将崩溃时的进程状态信息输出到文件和串口中,以供开发人员分析调试使用。Debuggerd的数据被保存在/data/tombstone/目录下,共可保存10个...

2017-05-18 11:57:41

阅读数 657

评论数 0

Gradle配置lintOptions

lint检查对于app来说也是很重要的,可以检查出很多问题。  lint配置  从stackoverflow上扒了一个配置。 android { lintOptions { // true--关闭lint报告的分析进度 quiet true ...

2017-03-07 15:42:28

阅读数 12905

评论数 0

Android native CursorWindow数据保存原理

转自http://blog.csdn.net/ifloveelse/article/details/28394103 我们通过Uri查询数据库所得到的数据集,保存在native层的CursorWindow中。CursorWindow的实质是共享内存的抽象,以实现跨进程数据共享...

2017-01-03 14:33:51

阅读数 488

评论数 0

如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion

原文出自:http://www.open-open.com/lib/view/open1453253049558.html英文原文:Picking your compileSdkVersion, minSdkVersion, and targetSdkVersion作者:Ian Lake,Goog...

2016-11-27 14:57:52

阅读数 221

评论数 0

Android中JavaScript和Native之间的Bridge

原文地址:http://rensanning.iteye.com/blog/2043049 为什么手机浏览器或者WebView中不能执行JavaScript调用本地API,而在HTML5混合式应用中却能执行?  JavaScript调用本地API大概有4种方法:  (...

2016-08-29 11:19:27

阅读数 1743

评论数 0

Android HTTPS详解

前言 最近有一个跟Https相关的问题需要解决,因此花时间学习了一下Android平台Https的使用,同时也看了一些Https的原理,这里分享一下学习心得。 HTTPS原理 HTTPS(Hyper Text Transfer Protocol Secure),是一种基于SSL/TLS的HT...

2016-07-11 14:34:54

阅读数 595

评论数 0

Java虚拟机运行时数据区

【本文来自网路,仅供参考】 经常有人把Java内存区分为堆内存(Heap)和栈内存(Stack),这种区分方法比较粗糙,Java内存区域的划分实际上远比这复杂。Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,主要包括: 虚拟...

2016-04-21 19:59:32

阅读数 400

评论数 0

如何在Android Studio项目中导入开源库?

前两天,谷歌发布了 Android Studio 1.0的正式版,也有更多的人开始迁移到 Android Studio 进行开发。然而,网上很多的开源库,控件等还是以前的基于 Eclipse 进行开发,很多人不知道怎么导入到自己的基于 Android Studio 项目中来,这里主要介绍一下常见的...

2016-01-03 15:14:00

阅读数 757

评论数 0

Android耗电评估

这里只是使用最简单的方法对你的app的电量消耗进行评估,如果还想更加详细或者复杂的方法,可以使用一些比较专用的工具,比如Emmagee(https://github.com/NetEase/Emmagee),这个就很好用。第一招:看系统的 设置-电池 里面的耗电排名。除非你的APP耗电很出格,一用...

2015-12-09 15:52:57

阅读数 1612

评论数 0

Linux上wifi找不到网络的解决

root@User-pc:~# ifconfig root@User-pc:~# ifconfig wlan0 down root@User-pc:~# ifconfig wlan0 up  //到这一般就可以了 root@User-pc:~# ifdown wlan0 root@Us...

2015-12-08 10:38:55

阅读数 4823

评论数 0

swap、page、mmap和Ashmem

【swap 和 page】Linux系统通过2种方法进行内存管理,“调页算法(page)”,“交换技术(swap)”。调页算法是将内存中最近不常使用的页面换到磁盘上,把常使用的页面(活动页面)保留在内存中供进程使用。交换技术是系统将整个进程,而不是部分页面,全部换到磁盘上。【swap 和 page...

2015-11-23 15:56:07

阅读数 744

评论数 0

Android上用tcpdump抓包(转)

1. 手机要有root权限 2. 下载tcpdump   http://www.strazzere.com/android/tcpdump 3. adb push c:\wherever_you_put\tcpdump /data/local/tcpdump 4. adb she...

2015-11-06 16:52:12

阅读数 756

评论数 0

集合的性能提升

ArrayList中查找用binarySearch比indexOf高效,因为前者是二分查找,后者是逐个查找,但前者的使用前提是元素要排序,否则准确性不可靠。

2015-10-20 09:22:55

阅读数 417

评论数 0

Android 系统源码导入 eclipse

1.复制development/ide/eclipse/.classpath 到源码的根目录下; 2.eclipse中创建java工程,不用起工程名,去掉勾选『Use default location』,选择源码目录ps:如果源码目录是只读的,导入会报权限不够,执行以下命令赋予权限,sudo c...

2015-10-12 13:52:11

阅读数 772

评论数 0

Linux基本概念

主分区(包括扩展分区)的最大个数是四个,所以主分区(包括扩展分区)范围是从1-4,逻辑分区是从5开始的;

2015-10-10 16:31:31

阅读数 475

评论数 0

Linux常用命令

查看磁盘使用情况:df -h 查看挂载磁盘:sudo fdisk -l

2015-10-10 16:01:43

阅读数 406

评论数 0

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