
读书笔记
文章平均质量分 54
若凉_季
为了生活
展开
-
Android AppOpsManager权限判断
整整大约一年没有更新文章了,最近有点忙。生活不能一直苟且,还要继续读诗和追追远方。 Android 本身权限控制做的不太理想,6.0也出了一套新的运行时权限系统,而在此之前,小米的miui系统就已经领先一步出了类似的安全管理机制,就是安全中心,可以针对单个app的某个权限做相应的设置,禁止某项权限,这对用户是好事,不再像以前那样,要安装app就必须要接受那一连串的不相干的权限。 说到这里,再鄙视原创 2017-01-06 20:19:27 · 6541 阅读 · 1 评论 -
synchronized 同步锁
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchronized(this)同步原创 2015-05-01 23:15:37 · 744 阅读 · 0 评论 -
最优单例模式
直奔主题,单例模式是一种表面简单实则很精妙的一个设计模式,网上有好多写法,什么饿汉懒汉什么多线程多处理器等等乱七八糟,个人觉得一种比较好的写法如下。public class SingleTon { private SingleTon() { }; private static class Holder { private static SingleTon instance =原创 2014-12-15 14:25:31 · 2617 阅读 · 0 评论 -
谈恋爱(面向对象)五大原则浅析!
面向对象编程其实是在无时无刻不在向我们阐释婚恋观呀今晚上看了一会模式,面向对象编程5大原则,想来跟处对象是一样一样的:单一职责原则(SRP): 做一个单纯的人,才会有简单《稳稳的幸福-陈奕迅》;一个类应该仅有一个引起它变化的原因开放封闭原则(OCP):悟以往之不谏,知来者犹可追; 既开放又封闭,对扩展是开放的,对更改是封闭的!里氏替换原则(LSP):花心大萝卜才原创 2014-12-16 23:33:53 · 1032 阅读 · 0 评论 -
面对对象 谈恋爱五大原则浅析!
面向对象编程其实无时无刻不在向我们阐释婚恋观面向对象编程5大原则,想来跟处对象是一样一样的:单一职责原则(SRP): 做一个单纯的人,才会有简单《稳稳的幸福-陈奕迅》; 一个类应该仅有一个引起它变化的原因开放封闭原则(OCP):悟以往之不谏,知来者犹可追; 既开放又封闭,对扩展是开放的,对更改是封闭的!里氏替换原则(LSP):花心大萝卜才能永远立于不败之地; 子类可以替换父类并且出现在父类能原创 2015-03-13 20:36:22 · 7709 阅读 · 1 评论 -
屏幕适配,彻底理解dp,dpi,屏幕密度,分辨率之间的爱恨纠葛
android初学者都会对密度,分辨率,dp,dpi等等混淆,今天来好好捋一捋这剪不断理还乱的江湖关系!废话不多说,直入主题。in:英寸inch,物理尺寸,1in =2.54厘米(cm)。4.2寸手机等等就是这个in,通常说的手机4.2寸,都是手机对角线4.2in。dpi:这个知道英文名有助于理解意义,its english name is: Dots Per Inch.每英寸的点数原创 2014-12-31 14:00:26 · 9115 阅读 · 0 评论 -
痴汉学android,胡来胡读胡记录
Handler 一个线程只有启动了Looper,才能在其中创建Handler的对象,进行消息处理,否则程序会出现异常。 启动Looper通过调用静态方法Looper.prepare();来实现。 一个线程只能有一个Looper和一个MessageQueue,但是可以有多个Handler对象。程序中可以使用不同的Handler对象处理不同的消息。Timer定时器也是常用的实现多线程程序的方式,但是原创 2015-03-12 01:38:44 · 5937 阅读 · 3 评论 -
MeasureSpec&OpenGL&SQLite——tips
MeasureSpec.EXACTLY 容器视图调用方已经指定了孩子视图的精确大小 MeasureSpec.AT_MOST 容器视图调用方设置了最大值,孩子视图可以请求更少的空间 MeasureSpec.UNSPECIFIED 容器视图对孩子视图没有限制,孩子视图可以随意请求大小部件调用setMeasureDimensions设置高度和宽度属性。然后,其父亲节点可以原创 2015-03-10 17:52:45 · 2873 阅读 · 0 评论 -
zygote&AsyncTask的doInBackgroud方法
zygote 有时候会遇到报有关zygote的错,这是个什么东西呢,简单理解就是孵化池。 当每个新的进程启动虚拟机的一个新的实例时,如果每次都加载所有必要的基类,则效率会很低。android把每个应用放在独立的进程中,他会利用底层linux操作系统的fork操作,通过模板进程生成新的进程,该进程在启动新的虚拟机实例时能够达到最优状态,该模板进程的名字就是zygote。zygote模板进程是dal原创 2015-03-09 21:16:55 · 4278 阅读 · 0 评论 -
Acticity和Intent精准定义
放假回来,本想任性一把,没想到更深刻的认识到了生活之艰辛,我还很弱小,不能凭一己之力改变亲人的生活,所以我还要加油。。。onCreate()方法,activity启动后被调用,此时界面没有显示出来,一般用于初始化,该方法须要一个Bundle类型的参数,当方法被调用时由系统传入该参数。 onStart()方法,当activity状态变为可见状态是被调用。 onResume()方法,当Activit原创 2015-03-06 00:22:10 · 8593 阅读 · 0 评论 -
duang,duang!!duang.java.mustReadTips
成员变量的定义是绝对安全的,对象创建时会自动初始化,布尔值初始化为false,基本数据类型初始化为0,对象类型(包括String)初始化为null。 通过clone方法,可以不调用构造函数而直接创建对象,虽然object类中定义了clone方法,但是一个对象中调用clone方法会导致异常,除非该对象实现了cloneable接口,当创建一个对象代价很高时,clone方法可以称成为一种有用的优化方式。原创 2015-03-05 19:07:17 · 9964 阅读 · 0 评论 -
Java Thread(线程)案例详解sleep和wait的区别
sleep()方法 sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会; sleep()是Thread类的Static(静态)的方法;因此他不能改变对象的机锁,所以当在一个Synchronized块中调用Sleep()方法是,线程虽然休眠了,但是对象的机锁并木有被释放,其他线程无法访问这个对象原创 2015-05-02 00:01:16 · 905 阅读 · 0 评论 -
gpu渲染性能调优
Android开发者选项中提供了Profile GPU Rendering功能,用于在屏幕上实时显示GPU渲染每一帧图像花费的时间(单位:ms)。 小米手机。 开发者选项——gpu呈现模式分析——在屏幕上显示为条形图渲染时间用柱状图表示,上面的绿线代表16ms,也就是要尽量保证所有柱状图都在这条线下方。每一条柱状图都由3部分组成,蓝色、红色和黄色,代表渲染的3个不同的阶段,通过分析这三个阶段的时间原创 2015-05-28 00:12:49 · 6713 阅读 · 1 评论 -
android调优总结
android:exported=”true”, 该 activity 可以被其他应用调用.—————————————————————————————调优总结蓝色,淡绿,淡红,深红代表了4种不同程度的Overdraw情况,我们的目标就是尽量减少红色Overdraw,看到更多的蓝色区域。 1、Overdraw有时候是因为你的UI布局存在大量重叠的部分,还有的时候是因为非必须的重叠背景。例如某个Act原创 2015-05-17 23:36:36 · 605 阅读 · 0 评论 -
我们为什么要在Android中使用RxJava
本文翻译来自–>Why should we use RxJava on Android 另外: 微凉一季 再另外: 微凉一季感觉RxJava最近风生水起,不学习一下都不好意思了,洒家也是初学RxJava,也是感觉代码好像更复杂更难懂了,看了一篇外文感同身受,简单翻译一下。本文简单介绍使用RxJava优势所在。但可能需要有一点RxJava基础,推荐先看一下抛物线的那篇经典的匠心写作。翻译 2016-01-14 14:12:09 · 5313 阅读 · 6 评论 -
Vysor让你在电脑上完全控制android手机屏幕镜像(译)
本文来自微凉一季的博客http://jijiaxin89.com/2015/08/29/Mirror-android-phone-s-screen-and-gain-full-control-on-computer-with-Vysor/#more 更多文章点击跳转微凉一季你是否在苦苦寻觅一款能映射未root过的android手机屏幕的工具呢,并且获得完全的控制权!?好消息来了,一个刚发布原创 2015-08-30 00:54:24 · 7500 阅读 · 6 评论 -
Android M 新的运行时权限开发者需要知道的一切
本文来自微凉一季的博客http://jijiaxin89.com/2015/08/30/Android-s-Runtime-Permission/ 更多文章点击跳转微凉一季tags: 翻译,这是一篇译文。android M 的名字官方刚发布不久,最终正式版即将来临! android在不断发展,最近的更新 M 非常不同,一些主要的变化例如运行时权限将有颠覆性影响。惊讶的是android社区鲜原创 2015-08-30 13:51:19 · 2004 阅读 · 3 评论 -
gradle学习总结,偷窥android studio的底裤
用过android studio的对gradle应该都不陌生了,gradle文件的基本配置大同小异,略做了解使用应该是没什么问题了。但是深入细致的了解一下对于理解项目还是很有帮助的,尤其是遇到一些配置复杂的github项目,不了解gradle可能会遇到跑不起来又束手无策的情形。下面对gradle相关知识、用法做一下总结。DSL (domain specific language)即所谓领域专用语言,原创 2015-08-29 22:17:34 · 1348 阅读 · 0 评论 -
android沉浸式状态栏实现细节
studio,中引入沉浸式兼容库 compile ‘com.readystatesoftware.systembartint:systembartint:1.0.3’ eclipse,可以导入相应的那个类。第一类,兼容actionbar 第一步:设置activity主题android:theme=”@style/ActionBarTheme”<style name="Actio原创 2015-07-30 18:39:53 · 1857 阅读 · 0 评论 -
如何紧跟android开发的潮流
title: 如何紧跟android开发的潮流 date: 2015-08-26 20:53:39 categories: 翻译 文章出处:转载自 微凉一季 的blog,转载注明出处而且 本文翻译来自外文今天看了篇文章,开发如何跟上发展的潮流,跟我的感受不谋而合,故整理翻译一下,以飨他人。android在世界上发展的非常迅猛,作为一个android 开发者,很重要的一件事就是要跟上前原创 2015-08-26 20:14:02 · 1120 阅读 · 0 评论 -
玩转hexo博客之next
原文链接,请跳转 玩转hexo博客之next分分钟添加背景音乐,high一下,搜索,等等,让你的博客瞬间花俏起来!原创 2015-08-22 00:53:54 · 4221 阅读 · 1 评论 -
jcenter那些事儿
jcenter是一个服务器托管在bintray.com的maven仓库。in project’s build.gradle fileallprojects { repositories { jcenter() } }或者也可以用Maven Central:服务器托管在sonatype.org的maven仓库。allprojects { repos原创 2015-07-14 13:16:24 · 1834 阅读 · 0 评论 -
android性能调优-工具记录
1、Trace view Trace view是Android平台特有的数据采集和分析工具,Trace view本身只是一个数据分析工具,而数据的采集则需要使用Android S D K中的Debug类或者利用D D M S工具。 关键代码段开始前调用Android SDK中Debug类的startMethodTracing函数,并在关键代码段结束前调用stopMeth原创 2015-05-26 15:06:37 · 853 阅读 · 0 评论 -
代码优化要点
消息缓存 通过handler.obtainMessage复用之前的message,如下:handler.sendMessage(handler.obtainMessage(0, object));网络缓存 数据库缓存http response,根据http头信息中的Cache-Control域确定缓存过期时间。文件IO缓存 使用具有缓存策略的输入流,BufferedInputStream替代I原创 2015-05-18 14:11:26 · 595 阅读 · 0 评论 -
算法的艺术
要么编程,要么被动接受编程 ---题记计算机科学是应用数学最难的一个分支,所以如果你是一位蹩脚的数学家,最好留在原地,继续当你的数学家---Dijkstra原创 2015-01-22 01:22:00 · 3391 阅读 · 0 评论 -
java Web小常识概要
jsp是基于java语言的server端脚本技术,是一种基于服务器端的脚本语言,是Servlet API的一个扩展,本质上就是把java代码嵌套到HTML中,然后经过jsp容器的编译执行,根据这些动态代码的运行结果生成对应的html代码,从而在客户端的浏览器中正常显示。jsp使用的是Java的语法。css 层叠样式表cascading style sheetCGI通用网关接口Ajax:原创 2015-01-02 21:40:20 · 840 阅读 · 0 评论 -
View的事件处理机制
android view事件处理机制娴熟了,才能做出酷炫的效果,提升逼格必备。触摸了任何一个控件都会调用控件的dispatchTouchEvent(MotionEvent event)方法,这个入口方法定义在view类里面。 public boolean dispatchTouchEvent(MotionEvent event) { if (mInputEventC原创 2014-12-20 20:31:33 · 6264 阅读 · 0 评论 -
java内部类嵌套类、成员类、
学习java和android还是要多看英文文档,翻译过来的东西有时候经常会看的迷茫,产生理解偏差,今天看异步消息源码的时候对几个类名产生了疑惑,相信很多人对成员类,嵌套类,内部类静态内部类的概念还没有真正搞清楚。 public Handler(Callback callback, boolean async) { if (FIND_POTENTIAL_LEAKS) {原创 2015-01-16 15:39:53 · 1130 阅读 · 0 评论 -
setWillNotDraw();方法的使用
ViewGroup默认情况下,出于性能考虑,会被设置成WILL_NOT_DROW,这样,ondraw就不会被执行了。如果我们想重写一个viewgroup的ondraw方法,有两种方法:1,构造函数中,给viewgroup设置一个颜色。2,构造函数中,调用setWillNotDraw(false),去掉其WILL_NOT_DRAW flag。在viewgroup初始化的时候,它调用了原创 2014-12-29 14:02:17 · 20988 阅读 · 3 评论 -
简单粗暴理解android异步消息处理机制
/** Initialize the current thread as a looper. * This gives you a chance to create handlers that then reference * this looper, before actually starting the loop. Be sure to call * {@原创 2015-01-16 18:24:50 · 1036 阅读 · 0 评论 -
listview的getItem和getItemId
在使用listview的时候经常会重写getItem()和getItemId()这两个方法,有的博客说getitem会在getview中使用,这是不对的,我们可能会疑惑这俩方法有什么用,有时候我们会直接ruturn null好像也没什么影响。其实,这俩方法不是在baseadapter类中被调用的,而是在Adapterview中被调用的。方法如下: public Object getIt原创 2014-12-09 17:18:38 · 7981 阅读 · 0 评论 -
android硬件加速以及渲染基础知识
目前,还不能在窗口级别禁用硬件加速功能,但是可以开启它。指定窗口开启硬件加速,使用如下代码:getWindow().setFlags(WindowManger.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManger.LayoutParams.FLAG_HARDWARE_ACCELERATED);View正好相反,在View级别不能启用硬件加速原创 2015-01-10 12:15:51 · 10990 阅读 · 0 评论 -
android - NDK 小tips
Cygwin和android NDK下载安装完成后,配置android ndk开发环境,配置环境变量:1、打开Cygwin的安装目录\home\\ .bash_profile文件。2、打开bash_profile文件,添加如下内容,然后保存:NDK = /cygdrive/e/Android/Android_sdk_eclipse/android-ndk-r8export NDK原创 2015-01-10 20:49:45 · 865 阅读 · 0 评论 -
Android View 中view.requestLayout() 与 invalidate()
requestLayout:当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。 特别的当view的layoutparameter发生改变,并且它的值还没能应用到view上,这时候适合调用这个方法。invalidate:View本身调用迫使view重画。View.req原创 2014-12-20 00:25:17 · 6709 阅读 · 0 评论 -
社会化分享
sso名词解释:sso英文全称single sign on ,单点登录。sso是在多个应用系统中,用户只需要登录一次,就可以访问多有互相信任的应用系统。例如,用户已经登录新浪微博客户端,使用sso授权登录时不需要用户手动输入用户名,密码,直接点击登录即可,因此成为免登陆。配置AndroidManifest.xml–权限、友盟AppKey、分享的相关组件复制指定平台的libs和res原创 2014-12-20 13:14:30 · 3872 阅读 · 0 评论 -
Android小tips fragment&&wms等
android framwork 层模块基础的线程进程通信模块,WindowManagerServer(Wms)、ActivityManagerSystemService(AmS)、(this is service)PackageManagerServer(PmS).通信总结的很到位原创 2014-12-17 11:19:27 · 688 阅读 · 0 评论 -
tips---adb
今天对自己很恼火,写一点简单的程序,发现简直是一步一坎,对eclipse和电脑各种不爽。等有钱了,高低买个好电脑,...唉越来越暴躁了,有点恨自己太渣了。大学误入歧途,现在悔恨也晚了,虽然现在每天都很刻苦,可是眼睛超不给力,没搞多久就眼睛酸痛,非常非常郁闷啊,我觉得学习精力和劲头是足够的现在,就是眼睛制约了我的效率,愁死了。总感觉有些东西记不牢,这是硬伤。唉。adb shell ad原创 2014-12-17 21:39:31 · 8113 阅读 · 0 评论 -
撕开位运算神秘面纱
基础不是太好,大学计算机原理神马的还要抽时间补一补。看android源码的时候,很多地方蹦出来几个位运算,感觉就无从是从了,深深地一种文盲的感觉。是时候对java中the fucking位运算做一下总结了位运算符 >>右移 >>正负右移与& 或| 非~异或^逻辑运算符 &&并且(会短路,所以简单的耗时原创 2014-12-15 23:36:04 · 2737 阅读 · 0 评论 -
内存易混淆概念
内存溢出指系统内存不够用了。你要求分配的内存超出系统能给你的,系统不能满足需求,产生溢出。 内存泄露指被分配出去的内存回收不了了,这样无论多少内存早晚会被用完,一般是程序逻辑有问题。最简单的例子就是死循环由于程序判断错误经常发生此事, 申请了一个integer,但是给他存long才能存的数。(竟也是内存溢出)java内存回收机制是从程序的主要运行对象开始检查引用原创 2014-12-12 10:45:24 · 884 阅读 · 0 评论 -
IPC——AIDL(Android Interface Definition Language)那些事儿
Android接口定义语言AIDL,与其他的IDL很类似,客户端和服务器端可以通过有它定义的编程接口来达成共识,以便通过进程间通讯(IPC)完成通讯。IPC(Inner-Process Communication进程间通信)。在android系统中,通常一个进程不允许直接访问另一个进程的内存,因此为了能够实现对话,进程需要把对象分解为操作系统可以识别的原生数据,在跨越进程边界后再组装起来。注意:仅原创 2015-01-23 16:44:32 · 4584 阅读 · 0 评论