- 博客(71)
- 资源 (17)
- 收藏
- 关注
原创 Android源码之Gallery专题研究(2)
引言上一篇文章已经讲解了数据加载过程,接下来我们来看一看数据加载后的处理过程。按照正常的思维逻辑,当数据加载之后,接下来就应该考虑数据的显示逻辑。MVC显示逻辑大家可能对J2EE的MVC架构比较熟悉,Gallery2和MVC有什么关系呢,简直是瞎扯???首先,我们先回忆一下软件设计思想以及设计原则(具体请参考http://blog.youkuaiyun.com/cdl2008sky/article
2014-08-21 14:01:59
5476
原创 Android源码之Gallery专题研究(1)
前言时光飞逝,从事Android系统开发已经两年了,总想写点什么来安慰自己。思考了很久总是无法下笔,觉得没什么好写的。现在终于决定写一些符合大多数人需求的东西,想必使用过Android手机的人们一定对“图库”(以下简称Gallery)这个应用非常熟悉。在Android市场里面有各种关于图库的应用,他们的最初原型其实就是Android系统原生“图库”,只是做了不同的差异化而已(UI差异化)。在研
2014-07-02 17:00:28
11976
转载 怎样创建优秀团队
最近看了一篇非常优秀的关于团队管理的文章,mark一下,以便以后查询。以下是原文地址:http://thenextweb.com/insider/2013/06/08/7-ways-to-build-and-retain-a-strong-team-as-your-company-grows/
2013-06-27 19:39:44
1093
转载 SSL/TLS 协议详解
SSL(Secure Sockets Layer,安全套接层),及其继任者 TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃
2013-06-27 13:54:52
2988
原创 JVM学习笔记-对象标记算法
上一篇文章了解的Java引用的四种模式,接下来将为大家讲解对象标记算法。当一个对象不再被引用时,该对象就变得useless了,其实及时它目前没有任何一个reference的target,并且认为它今后也不再会被引用(这是用从逻辑上说,实际上此刻没有被引用的对象,今后也不会被引用了)1.引用计数法(Reference Counting)核心思想:很简单,每个对象都有一个引用计数器,当在某处该
2013-06-24 19:45:16
1942
原创 JVM学习笔记-引用(Reference)机制
如果你还不了解JVM的基本概念和内存划分,请阅读JVM学习笔记-基础知识和JVM学习笔记-内存处理文章。因为Java中没有留给开发者直接与内存打交道的指针(C++指针),所以如何回收不再使用的对象问题,就丢给了JVM。所以接下来就介绍一下目前主流的垃圾收集器所采用的算法。不过在此之前,有必要先了解Reference 1.引用(Reference)如果你现在还是JDK1.0或
2013-06-23 21:03:17
2360
原创 JVM学习笔记-内存溢出
JVM学习笔记-内存处理一文中已经介绍了JVM对内存区域的划分和处理。在实际编程过程中,会遇到一些OutOfMemory(OOM)异常。通过模拟。我们可以直接指出这些场景的本质,从而在纷繁复杂的千万行代码中避免这样去Coding。导致OOM的情况有多种,包括Java或Native Method Stack的内存不足或者栈空间溢出、Heap内存溢出、Non-heap内存溢出、Direct Mem
2013-06-23 15:09:43
4059
原创 JVM学习笔记-内存处理
大多数JVM将内存区域划分为Method Area(Non-Heap),Heap,Program Counter Register,Java Method Statck,Native Method Stack和Direct Memomry(备注:Directory Memory并不属于JVM管理的内存区域)。前三者一般翻译为:方法区、堆、程序计数器。但不同的资料和书籍对于后者的翻译名不尽相同,这里
2013-06-22 17:17:24
2185
原创 JVM学习笔记-基础知识
前言:JVM是每一位从事Java开发工程师必须翻越的一座大山!JVM(Java Virtual Machine)是JRE的一部分,从字面上的意思来讲就是一个虚拟的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM虚拟了一套完善的硬件架构(处理器、堆栈、寄存器等,相应的指令系统)。Java语言最重要的特点就是跨平台运行,其关键就是JVM实现了跨平台操作。JVM是Java字节
2013-06-22 15:04:20
4213
原创 Ubuntu安装SourceInsight异常及解决方法
由于SourceInsight没有Linux版本,因此想要在Ubuntu系统使用SourceInsight,必须通过Wine来安装软件。可以使用以下命令安装Wine:#sudo apt-get install winewine安装后,接着安装SourceInsightApplications --> Wine --> Configure Wine -->Applications -
2013-05-27 15:47:01
6543
原创 JavaScript-html标题滚动效果
JavaScript性能优化总结后,NX学生备受打击,整日玩游做乐,沉迷于网页游戏。看见网页游戏标题经常出现滚动效果,感觉不错,决定模仿该效果试试。还没等思绪稳定,NX学生已经键步如飞的打开了Notepad++编译器,开始挥毫泼墨……激情网页游戏var s="激情网页游戏……".split("");alert("OK");function func(){
2013-05-19 16:49:52
5158
原创 JavaScript性能优化总结
在J2EE编程中,我们接触最多的脚本语言还是JavaScript。在使用JavaScript中我们通常会考虑其性能问题,因此将日常总结的关于JavaScript性能优化的方式总结出来,以备查询。在使用JavaScript中经常会遇到字符串的拼接问题。请问大家在使用Java编程的时候遇到上述的问题,该怎么处理?NX学生:老师,使用StringBulider 或StringBufferSB
2013-05-19 14:58:23
2237
原创 Ubuntu环境下OpenGrok的安装及使用
OpenGrok是一个快速,便于使用的源码搜索引擎与对照引擎,它能够帮助我们快速的搜索、定位、对照代码树。接下来就具体讲解一下OpenGrok的安装及使用。安装Web服务器-Tomcat第一步:首先大家应该明白OpenGrok是一个Web系统,因此要共享OpenGrok搜索引擎,需要安装Web服务器。在Ubuntu环境下,推荐使用Tomcat。下载Tomcat到指定目录(e.g /da
2013-05-18 17:29:14
16508
转载 Java jar打包工具的使用
java的jar是一个打包工具,用于将我们编译后的class文件打包起来,这里面主要是举一个例子用来说明这个工具的使用。 在C盘下的temp文件夹下面: 有一个com.pack.surfront的package 这个package下面有一些已经class文件如:Test1.class,Test2.class,Test3.class,其中Tes
2013-04-29 17:08:36
1976
转载 Android Serach框架使详解
最近在看Android系统提供的Search框架,搜索了很多关于Search框架的资料,觉得以下博客写的很好,因此转载,供以后查询,感谢博主的辛勤劳动。Searchable前言http://hubingforever.blog.163.com/blog/static/17104057920114101422295/Searchable之自定义Suggestins(上)http://
2013-04-27 13:15:27
1128
原创 Ubuntu--解决USB不能自动识别问题
最近项目需要在Android源码中进行开发,于是在Virtual Box中安装Ubuntu,郁闷的是插上usb连接线,连接上手机,Ubuntu不能自动识别连接设备。在网上搜索了很多解决办法,各抒己见,最终找到一种可行的解决方案:1、安装usbmount$ sudo apt-get install usbmount2、更改usbmount配置文件$ sudo gedit /etc/u
2013-04-16 09:07:02
6652
1
转载 Ubuntu设置环境变量
Ubuntu设置环境变量Ubuntu下设置环境变量有三种方法,一种用于当前终端,一种用于当前用户,一种用于所有用户:一:用于当前终端:在当前终端中输入:export PATH=$PATH:不过上面的方法只适用于当前终端,一旦当前终端关闭或在另一个终端中,则无效。二:用于当前用户:在用户主目录下有一个 .bashrc 隐藏文件,可以
2013-04-15 22:21:13
1065
转载 玩转GitHub之基本配置及使用
GitHub是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。对于一般人来说公共仓库就已经足够了,而且我们也没多少代码来管理,O(∩_∩)O~。下面是我总结的一些简单使用方法,供初学者参考。1.注册账户以及创建仓库要想使用GitHub第一步当然是注册GitHub账号了。之后就可以创建仓库了(免费用户只能建公共仓库),Create
2013-04-15 18:18:30
9023
转载 ubuntu apt-get 安装软件包时 出现依赖的包版本过高
今天在virtualbox里安装了ubuntu,想安装openssh-server却发现了这样一个问题:The following packages have unmet dependencies: openssh-server: Depends: openssh-client (= 1:5.3p1-3ubuntu3) but 1:5.3p1-3ubuntu5 is to be
2013-04-12 23:32:41
2410
1
原创 Android 源码导入Eclipse技巧(Ubuntu)
在做Android系统开发时很多人都会在Google官网去下载一份Android源码作为参考。源码下载完成的目录结构如如所示:Android源码支持多种IDE,如果是针对APP层做开发的话,建议大家使用Eclipse开发环境。在源码路径(~/development/ide/eclipse)下,Android提供了.classpath配置文件(备注:该文件为隐藏文件)。将该文件拷贝到源代
2013-04-07 22:32:56
2796
原创 Spring核心技术阐述(IOC、DI、AOP)
IOC(Inversion of Control)——控制反转 首先介绍IoC(Inversion of Control,控制反转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后
2013-04-07 21:05:03
2483
原创 Ubuntu搭建Git服务器
Git的安装请参照 Ubuntu Git安装和Ubuntu Git升级两篇文章。本文将重点介绍Ubuntu 下Git服务器的搭建,以及Git服务器搭建常见异常解决方案。首先,需要在ubuntu中安装git-daemon,安装命令如下:#sudo apt-get install git-daemon-run安装好git-daemon后,需要修改配置文件 /etc/sv/git-dae
2013-04-02 22:48:35
1689
转载 在 Ubuntu 安裝或升級 Git 版本控制的3種方法
Git 是目前還蠻 popular 的一套版本控制軟體,很多公司及大小型專案都用 g是it 來控管流程,或者是搭配 redmine 專案管理,然而 git 大家都會想到 github 這個儲存空間,免費註冊就有 300MB 的空間讓大家使用,如果對於 git 的使用方式,我推薦一個非常好的網站,就 git wiki,這網站不只是教你 git 指令應用,還收集了很多不錯的網站,底下介紹三種
2013-03-31 21:40:10
2129
原创 Ubuntu10.04安装Git异常汇总
背景知识:Git是一个开源的分布式版本控制系统,适用于高效、快速的处理各种项目版本的管理。Git是Linux Torvalds为了帮助管理Linux内核而开发的一个开放源码的版本控制软件。尽管最初Git开发是为了辅助Linux内核开发过程,但是现在Git已经成为当下最流行的项目版本控制软件。SVN简介:SVN是CVS的升级版本,是用来替代CVS的,因为CVS内部代码的问题,很难
2013-03-31 21:35:05
1896
原创 Ubuntu apt-get安装软件异常
1、Ubuntu 出现apt-get: Package has no installation candidate问题异常如下所示:# apt-get install Reading package lists... DoneBuilding dependency tree... DonePackage aptitude is not available, but is re
2013-03-30 00:46:52
12394
原创 Ubuntu-ibus安装中文输入法
最近安装的Ubuntu10.04不能输入中文,经过几天不懈的搜索终于找到了以下解决方法:首先,简单介绍一下Ibus,IBus是一个框架,支持多种输入法。问题1:Ubuntu系统选择自带的拼音输入法是错误的,它默认无法输入中文及中文词组,请独立安装其他基于IBus的输入法问题2:Ubuntu系统自带的IBUS1.2.0版本存在bug,在使用backspace键删除字符后输入法将无法继
2013-03-29 22:48:17
1951
原创 Ubuntu安装Virtualbox虚拟机
Virtualbox下载地址:https://www.virtualbox.org/wiki/DownloadsUbuntu系统下安装:在线安装方式:sudo apt-get install virtualbox-4.0离线安装方式:选择下载相应的Linux版本的Virtualbox,下载完成后进入相应目录,使用以下命令进行离线安装:sudo dpkg -i virtu
2013-03-29 12:05:05
1925
原创 Win7安装Ubuntu虚拟机异常处理:FATAL: NO bootable medium found! System halted
异常:FATAL: NO bootable medium found! System halted.如图所示:问题原因:设置系统启动方式问题;或没有用iso文件来安装系统解决方案:1.按照正常方式建立了一个虚拟机之后,点击“设置”按钮,点击“系统”选择启动顺序,把“光驱”选到最顶格2.然后点击介质,有个“存储树”框,选择光盘,然后点击有右侧虚拟光驱下的“打开介质管理器按
2013-03-28 23:11:37
36179
转载 Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制
原文地址:http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的
2013-03-19 15:18:01
743
原创 Git管理本地代码(二)
我们在项目开发时,只需要提交我们编写的源码,其他由编译器生成的如:*.project*.classpath.settings/等文件,我们不需要提交到代码库中。因此我们需要过滤这些特殊文件,具体做法如下所述:在仓库目录下创建一个名为.gitignore文件gitignore文件均为如下格式:# 以'#'开始的行,被视为注释.
2013-03-15 17:53:15
2331
原创 Git管理本地代码(一)
安装Git$sudo apt-get install git$sudo apt-get install git-core更新Git$git clone git://git.kernel.org/pub/scm/git/git.git安装好git后在终端输入git 命令会显示git命令提示,证明git已经安装成功。初始化代码仓库$mkdir android4.2
2013-03-15 17:31:05
2485
原创 Google源码技巧(一)
写作能力的优劣,很大一部分是靠平时的阅读积累;同样编写代码的能力也是通过阅读优良的源码,去其糟粕取其精华,不断提炼,才能写出高效优良的代码。阅读了很多Google源码,觉得其中有很多的编程思想值得我们借鉴,因此将其中一些编程技巧记录下来,以备查询。情景:在进行复杂程序的编写的时候,我们经常要进行多线程的操作,并在主线程(UI线程)中更新UI。大家在Android编程中一定遇到过上述的编程情
2013-03-14 18:02:34
1632
转载 Android操作系统默认图片
在android中,我们可以通过如下方式调用android操作系统默认的图片xml中引用:android:src="@android:drawable/alert_dark_frame"代码中引用:Bitmap bm = BitmapFactory.decodeResource(getResources(), android.R.drawable.alert_dark_frame)
2013-03-08 22:13:49
4537
原创 Java Thread sleep和wait的区别
我们在编写Java线程程序的时候,经常忽略sleep 和 wait方法的区别,导致一些非常棘手的问题,因此了解这两种方法区别有助于我们编写出更加优质的程序。区别: sleep() wait() s
2013-03-08 09:53:03
7697
原创 JNI-Native代码访问Java代码(一)
上一篇文章给大家介绍了怎样使用JNI来调用Native代码,在被调用的C/C++函数中也可以反过来访问Java程序中的类,接下来给大家讲解怎样使用Native代码访问Java代码。.h头文件分析在上一篇文章中我们使用javah 命令生成的头文件(.h)中有两个非常重要的参数,具体代码如下:JNIEXPORT void JNICALL Java_com_jony_nativetest_T
2013-02-17 21:09:06
3513
1
原创 JNI--Hello World
JNI概述JNI 是Java Native Interface的缩写,中文译为“Java本地调用”。通常使用JNI技术可以做到以下两点:(1)Java程序中的函数可以调用Native语言函数,Native函数一般指的是C/C ++编写的函数;(2)Native程序中的函数可以调用Java层的函数,也就是说在C/C++程序中可以调用Java层函数。当然任何事物都有两面性,JNI也不例
2013-02-06 11:50:33
3562
1
原创 Android--利用Java反射机制获取视频帧图像
在Android多媒体开发中,我们必须了解系统MediaScanner的整体流程,网上关于MediaScanner的文章非常多,感兴趣的朋友看以参看以下两篇博客:http://blog.youkuaiyun.com/Innost/article/details/6083467(注重MediaScanner源码流程分析)http://blog.youkuaiyun.com/zqiang_55/article/det
2012-12-11 22:49:16
5725
原创 Android自动化测试及性能优化
软件自动化测试对于程序员来说能够确保软件开发的质量和效率。在Android编程中,Android集成了Junit单元测试框架,因此我们可以通过Junit来进行单元测试以及自动化测试。1、引入Junit测试框架在Manifest.xml配置文件中,我们需要引入Junit测试框架,因此需要在配置文件中添加如下代码:在标签中添加Junit测试库:在标签中添加以下代码:
2012-12-09 23:31:19
7125
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人