自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android 跨进程内存泄露

内存泄露的检测和修复一直是每个APP的重点和难点,也有很多文章讲述了如何检测和修复。本篇文章 结合最近开发的项目遇到的实例,讲述下Android Binder导致的内存泄露的一个案例。发现问题参与的项目在最近的版本接入了一个开源的内存检测工具LeakCanary,在提交给QA测试验证后。 瞬间检测出来N多的内存泄露,XXXActivity泄露,XXXActivity泄露…坑爹的是,这种泄露还不是

2016-07-11 16:41:21 3923 1

原创 欢迎使用CSDN-markdown编辑器

Gradlegradle简介gradle跟ant/maven一样,是一种依赖管理/自动化构建工具。但是跟ant/maven不一样,它并没有使用xml语言,而是采用了Groovy语言,这使得它更加简洁、灵活,更加强大的是,gradle完全兼容maven和ivy。采用了Domain Specific Language(DSL语言)来描述和控制构建逻辑。构建文件基于Groovy,并且允许通过混合声明D

2015-12-21 00:46:32 464

原创 Android 事件分发机制

Android 事件分发机制先看一下网上其它人总结的内容: http://www.cnblogs.com/sunzn/archive/2013/05/10/3064129.html 里面的返回值只的是在重写对应函数时,直接返回false,true还是super的意思。 http://blog.csdn.net/xyz_lmn/article/details/12517911 这一篇介绍了事件

2015-11-05 17:47:12 382

翻译 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用

2015-11-05 15:15:46 294

原创 Android 学习笔记17:Handler,Looper,Message原理

Android中的UI线程(主线程)不是线程安全的(并发访问变量,会导致结果不可预知),所以无法再非UI线程中更新UI.解决方法是使用Handler+Message.Handler默认会有一个当前线程的引用(如UI线程),非UI线程可以通过Handler的引用,向UI线程发送Message,UI线程在收到Message后就可以在当前线程里更新UI.一般UI线程必须建立自己的

2014-09-14 03:35:48 744

原创 Android 学习笔记16:Menu 和 action bar

菜单资源分为选项菜单:重写 onCreatOptionsMenu() public boolean onCreateOptionsMenu(Menu menu) { //设置样式 getMenuInflater().inflate(R.menu.main, menu); return true; }//菜单项被选中时的

2014-05-11 01:15:22 824

原创 Android 学习笔记15:task和back stack

Task和back stack一个task就是用户为了完成一个任务时所操作的一组activity。而back stack就是组织这一组activity的方式,从而实现所谓的“无缝连接”。启动一个task一般是在手机主界面,点击一个程序图标时,(如果没有该程序的实例)就会新建一个task而该程序的主界面(activity)就是back stack的第一个元素。接着当当前的activi

2014-04-01 21:00:19 509

原创 Android 学习笔记14:数据存储

android的数据存储有4中方式sharedPreferences、SQLite、content provider和filesharePreferences提供轻量型数据存储, 一般用户存储配置信息本质上是xml文件上的键值对,通常用来存储一些简单的配置信息。其存储位置在/data/data//shared_prefs目录下。它本身只支持获取数据,不支持修改数据。要修改数据可

2014-03-05 16:20:23 512

原创 Android 学习笔记13:Fragment

内容来自:http://blog.csdn.net/guolin_blog/article/details/8881711Fragment简介每一个fragment都包含自己的UI布局,并接受输入事件,且必须绑定到某个activity中。fragment的主要作用是将activity拆分成多个独立封装的可重用组件,每个组件有自己的生命周期和UI布局,使得应用在不懂尺寸的设备上都有较

2014-02-10 16:35:04 599

原创 Android 学习笔记12:Intent和Intent-filter,

Intent用于在不同组件间进行信息交换目前学习Activity间的信息交换,学习资料Intent对象包含的属性Component属性:可以接受一个ComponentName对象,指定要启动的组件。1.如果没有设置该属性那么就是 implicit intent,那么启动的组件通过申明的操作决定。implicit intent先发送给android系统,由系统根据各个Acti

2014-01-28 18:45:42 724

原创 Android 学习笔记11:Activity

Activity大致包括四个状态   Activity状态运行状态位于前台,位于栈顶,用户可见,可操作暂停状态其他activity位于栈顶,该activity仍然可见,不可获得焦点(例如,启动一个非全屏或透明的activity)停止状态完全被另外一个activity覆盖,不可见,无法获得焦点销毁状态当一个activit

2014-01-27 22:02:11 671

原创 Android 学习笔记10:高级控件(二)

ProgressBar显示进度条,常用属性有android:max  设置进度条的最大值android;progress 设置进度条以完成进度android:progressDrawable 进度条轨道的绘制形式style 设置进度条的样式可以有 @android:style/Widget.ProgressBar.Horizontal@android:style/Wid

2014-01-25 21:59:33 566

原创 Android 学习笔记9:高级控件

AutoCompleteTextViewAutoCompleteTextView继承自EditText,和EditText类似在输入字符后会有下拉菜单,供用户选择。android:completionHint 设置出现在下拉菜单的提示标题android:completionThreshold 设置输入几个字符后有提示android:dropDownHeight 设置下拉菜单高度

2014-01-25 16:37:04 600

原创 Android 学习笔记8:基本控件

AnalogClock、DigitalClock和 Chronometer都是android的时钟组件DigitalClock继承自TextView,文本框里显示的是当前时间,可以用TextView的属性,修改文本信息,例如TextSize,textColor等等。AnalogClock继承自View,重写了onDraw方法。Chronometer继承自TextView,也显示一段

2014-01-24 17:50:24 499

原创 Android 学习笔记7:基本控件

TextView和 EditTexttextView的继承关系TextView不可编辑,EditText可以编辑属性android:autoLink  可以赋值phone web email等,当文本符合该类型时,转换成超链接  TextView可用android:drawableBottom*4 在组件对应的位置绘制图像,图像超过文本框大小时,超出部分不显示and

2014-01-23 22:33:24 615

原创 Android 学习笔记4:资源文件的定义和使用

color定义在res/values中的colors.xmlxml格式: #颜色值引用资源方法java:R.color.color_namexml:@[package:]color/color_name获得颜色方法Resources.getColor()这个不知道有什么用String定义在res/values中的strings

2014-01-23 14:54:25 805

原创 Android 学习笔记6:布局管理器

布局管理器的继承关系LinearLayoutandroid:gravity    设置布局管理器内组件对其方式,如top,right,left,bottom,center,可以多个属性组合如top|rightandroid:orientation 设置组件的排列方式,包括 horizontal和verticalTableLayout添加就是添加一个表格行,向其中

2014-01-20 17:52:48 790

原创 Android 学习笔记5:GUI编程

android的 绝大部分的UI组件都在android.widget和android.view包和他们的子包中。所有的UI组件都继承自View。1.通过xml布局优点是UI和控制代码分开,易扩展,缺点是不够灵活。xml保存在res的layout中,一般是一个activity对应一个页面布局,需要在androidManifest中注册对应的类。代码要访问页面可以通过R.java进行索

2014-01-20 14:03:39 934

原创 Android 学习笔记3:应用程序文件结构

helloworldeclipse -> file->new-> project->android application projectrun as android application文件结构:src:保存java源文件的目录gen:下面有一个R.java,创建时由appt工具自动生成,只读模式。对要用到的资源文件进行全局索引,re

2014-01-19 14:50:00 582

原创 Android 学习笔记2:搭建开发环境

步骤一:下载安卓SDK官网http://developer.android.com/sdk/index.html没有安装Eclipse的直接下载已近安装了exlipse的 下载 sdk就可以了按照提示做。最后打开eclipse有步骤二:创建Android虚拟机

2014-01-19 13:54:28 442

原创 Android 学习笔记1:基本架构

Android平台架构安卓操作系统分为四层:应用程序,应用程序框架,核心类库(包括运行时环境),linux kernel。linux kernel android的系统服务,包括进程管理,内存管理,网络协议栈等等,是硬件和软件之间的抽象层。核心类库:运行时环境1、 核心库提供的Java 功能2、Dalvik 虚拟机依赖于Linux 内核,例如线程

2014-01-18 23:17:38 626

原创 java学习一:jvm内存分配

java 运行基础Java应用程序的开发周期包括编译、下载、解释和执行几个部分运行JVM字节码的工作是由解释器来完成的。解释执行过程分三部进行:代码的装入、代码的校验和代码的执行。 Java 字节码执行有两种方式:         (1). 即时编译方式:解释器先将字节码编译成机器码,然后执行该机器码。         (2). 解释执行方式:解释器通过每次解释并执行一

2014-01-17 17:49:55 1309

原创 sicily 1153

题目ConstraintsTime Limit: 1 secs, Memory Limit: 32 MB , Special JudgeDescription和题目C同样的任务,这里只是把棋盘扩大到标准的国际象棋。对这样一个8 * 8的棋盘用同样的方法编号如下:1     2     3       4     5     6       7     89     

2013-11-06 00:36:23 453

原创 sicily1152 非递归版本 与 递归版本

题目Description在一个5 * 6的棋盘中的某个位置有一只马,如果它走29步正好经过除起点外的其他位置各一次,这样一种走法则称马的周游路线,试设计一个算法,从给定的起点出发,找出它的一条周游路线。为了便于表示一个棋盘,我们按照从上到下,从左到右对棋盘的方格编号,如下所示:1     2     3       4     5     67

2013-11-05 20:50:58 583

游戏人工智能编程案例精粹

游戏人工智能编程案例精粹

2013-10-17

算法导论--Thomas H. Cormen

算法导论经典著作 Thomas H. Cormen--------算法“倚天屠龙”双剑

2012-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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