自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ASCE1885

编程是一种艺术 目的在于告诉其他人他想要让计算机做什么

  • 博客(355)
  • 资源 (18)
  • 问答 (2)
  • 收藏
  • 关注

原创 Android开源代码解读の地图照片应用Panoramio的实现详解(六)

本文介绍文件ViewImage.java和ViewMap.java。前者实现单张图片信息的浏览,后者实现自定义的地图,用于显示图片拍摄地点和用户当前所在地点。ViewImage实现的Activity界面如左下图,点击手机的菜单键时,弹出菜单选项界面如右下图:

2012-02-26 10:59:00 2528

原创 Android开源代码解读の地图照片应用Panoramio的实现详解(五)

在前面几篇文章中,我们或多或少了解到了ImageManager类的存在,它负责从Panoramio服务器下载搜索区域内的图片数据,同时进行解析。当然,这一切是在独立的后台线程中进行的,下载的情况通过观察者模式通告给ImageList进行显示(ImageManager是被观察对象Subject)。注意,ImageManager是一个单例类。本文涉及到的知识点有两个:JSON和WeakRefere

2012-02-25 00:31:08 2799 1

原创 Android开源代码解读の地图照片应用Panoramio的实现详解(四)

本文继续讲解Panoramio的实现,主要介绍ImageAdapter.java和ImageList.java 这两个文件,这两个文件实现了如下所示的界面,左图是数据从网络加载过程中,有图是加载完成后的效果:                              ImageAdapter继承自BaseAdapter类,实现图片适配器的功能,而ImageList则继承自ListA

2012-02-23 23:44:54 5502 5

原创 Android开源代码解读の地图照片应用Panoramio的实现详解(三)

本文介绍程序主界面的实现,对应的文件是Panoramio.java,主界面提供给用户从地图上选择搜索区域的功能,因此,直接从MapActivity继承,并实现OnClickListener接口。这样一来,这个类的初始框架如下代码所示:import com.google.android.maps.MapActivity;import android.os.Bundle;import and

2012-02-22 23:49:43 2462

原创 Android开源代码解读の地图照片应用Panoramio的实现详解(二)

本文分析两个类:程序中用到的数据类PanoramioItem,以及工具类BitmapUtils。1)Parcelable接口和PanoramioItem类任何类如果希望自己的实例能够写入到Parcel中或者从Parcel中恢复出来,都必须实现Parcelable接口,实现这个接口的类除了要重写接口中定义的函数,还需要定义一个名为CREATOR的静态域,而CREATOR是实现Parcelab

2012-02-22 00:07:05 3148 1

原创 Android开源代码解读の地图照片应用Panoramio的实现详解(一)

Panoramio是一个照片分享社群,网址是http://www.panoramio.com/,现在被google收购了。注册之后就可以上传自己的照片,这些照片上传后可以在卫星地图上进行定位,经过审核的照片将有可能出现在Google Earth上,网站的宗旨是以照片发掘全世界,网站的logo如下:本文将要学习的开源代码也叫Panoramio,它实现的功能就是根据用户在地图上选择的地

2012-02-20 23:32:33 3646 1

原创 Android开源代码解读のOnScrollListener实现ListView滚屏时不加载数据

使用ListView过程中,如果滚动加载数据的操作比较费时,很容易在滚屏时出现屏幕卡住的现象,一个解决的办法就是不要在滚动时加载数据,而是等到滚动停止后再进行数据的加载。这同样要实现OnScrollListener接口,关于该接口的简要描述见上一篇文章,这里直接进行代码的分析:package hust.iprai.asce1885;import android.app.ListActi

2012-02-19 21:37:50 4913 1

原创 Android开源代码解读のOnScrollListener实现ListActivity滚屏首字母提示

OnScrollListener接口是定义在AbsListView中的,而AbsListView的直接子类有GridView和ListView,非直接子类有ExpandableListView。OnScrollListener的完整路径是frameworks\base\core\java\android\widget\AbsListView.java,代码如下:/** * Interfa

2012-02-19 19:22:22 3773 1

原创 Android开源代码解读の使用TelephonyManager获取移动网络信息

本文介绍使用TelephonyManager来获取手机SIM卡的状态和移动网络的相关信息,主要使用了TelephonyManager.listen函数,这个函数源码如下:public void listen(PhoneStateListener listener, int events) { String pkgForDebug = mContext != null ? mCont

2012-02-18 14:10:28 4734 1

原创 Java朝花夕拾の实现Comparable接口

Java.lang.Comparable接口中唯一的方法是compareTo(),在该方法中可以进行简单的相等比较以及执行顺序比较,接口实现框架如下:public class ComparableImpl implements Comparable { @Override public int compareTo(ComparableImpl o) { // TODO Auto-ge

2012-02-14 23:42:29 1883

原创 Java朝花夕拾の基本类型和引用类型

Java中数据类型可分为两大类:引用类型(reference)和基本类型(primitive)。1)基本类型基本类型有8种:boolean、char、byte、short、int、long、float、double。它们都有相应的包装类,这些包装类都属于引用类型,它们依次是:Boolean、Character、Byte、Short、Integer、Long、Float、Double。2

2012-02-14 20:54:28 1846

原创 Android Framework中的PolicyManager简介

PolicyManager类位于framework\base\core\java\com\android\internal\policy目录中的PolicyManager.java文件中。PolicyManager主要用于创建Window类、LayoutInflater类和WindowManagerPolicy类,它扮演着简单工厂模式中的工厂类角色,而抽象产品角色由IPolicy接口实现,具体产品

2012-02-12 21:11:50 6797 3

原创 Android中不同包路径下Activity跳转的实现(解决ActivityNotFoundException)

初学者在尝试位于不同Java包目录下Activity之间的跳转时,经常会在运行时得到ActivityNotFoundException,下面就来看看不同包目录下Activity跳转的实现。首先,我们创建两个Activity:JumpTestActivity和JumpTestActivity2,JumpTestActivity中有个按钮,当用户按下时会跳转到JumpTestActivity2

2012-02-10 23:39:26 8451 1

原创 Clean Code学习笔记の将系统的构造与使用分开

为了软件系统在系统层级上保持整洁,需要为系统演化出恰当的抽象等级和模块。其中一个有效的方法就是将系统的构造和使用分开,因为构造和使用是非常不一样的过程。软件系统应将启始过程和启始过程之后的运行时逻辑分离开,如果在启始过程中构建应用对象,将会存在相互缠结的依赖关系。将关注的方面分离开,是软件技艺中最古老也是最重要的设计技巧。不幸的是,多数应用程序没能做到分离处理,启始过程代码很特殊,被混杂到运行

2012-02-05 12:12:27 2923 1

翻译 访问Android硬件资源の控制设备的振动

手机设备振动是向用户反馈信息的一种很好的方法,特别是在游戏应用中得到了极大的发挥。要控制设备的振动,我们的应用程序需要获得许可,即在AndroidManifest.xml文件中添加如下代码:设备振动是通过Vibrator类来实现的,获取这个类实例的代码如下:String vibratorService = Context.VIBRATOR_SERVICE;Vibrator vibr

2012-01-09 23:36:49 1677

翻译 访问Android硬件资源の管理网络和Wifi连接

(1)ConnectivityManager在Android中,ConnectivityManager类代表网络连接服务,它被用来监控网络连接状态,配置失效重连,并控制网络天线等。获取Connectivity Manager实例的方法是使用getSystemService,并指定Context.CONNECTIVITY_SERVICE作为参数,代码片段如下:String cserviceN

2012-01-06 00:53:23 3533

翻译 Android图像处理简介の图像存储和元数据

Android提供Content Provider来实现应用程序之间的数据共享,provider提供了标准的接口用于存储和检索多种类型的数据。图像 、音频和视频的标准content provider就是MediaStore。1)获取图像的URI要获得标准的图像存储路径,我们需要获得MediaStore的引用,而这是通过content resolver来实现的(因为使用Content res

2011-12-18 18:39:17 2921

翻译 Android图像处理简介の使用内置Camera应用程序进行图像捕获

Android中可以简单直接地使用intent来获取已安装应用软件提供的功能,它是Android的关键组件之一,主要作用有两个:一是触发其他应用程序提供的功能;二是在单个应用程序中实现Activity之间的切换。软件开发人员使用intent filter来声明应用程序提供某种特定功能,这个声明是在AndroidManifest.xml中进行的,例如,内置的Camera应用在它的manifest

2011-12-18 15:03:34 6240 2

原创 Android RIL源码研究笔记 の ril (二)

这篇文章介绍ril.cpp中实现部分代码中的四个字符串输出函数及其相应的枚举类型。首先看requestToString()函数的代码,它的功能是将将ril_command.h和ril_unsol_commands.h中的命令转换成字符串描述: const char * requestToString(int request) { switch(request) {

2011-12-09 21:52:08 4563

原创 Android RIL源码研究笔记 の ril (一)

Android源码目录hardware/ril/libril中总共包含5个C/CPP文件,它们分别是ril_commands.h、ril_unsol_commands.h、ril_event.h、ril_event.cpp和ril.cpp。这篇文章主要分析ril.cpp文件。    我们可以将该文件划分为定义部分和实现部分,先来看定义部分: #define LOG_TAG "RILC"

2011-12-09 00:18:01 2760

原创 Android RIL源码研究笔记 の ril_command (一)

Android源码目录hardware/ril/libril中总共包含5个C/CPP文件,它们分别是ril_commands.h、ril_unsol_commands.h、ril_event.h、ril_event.cpp和ril.cpp。这篇文章主要分析commands相关的两个头文件,这两个文件主要定义了所有telephony可以接收的命令或者响应的事件类型,以及相应的处理函数。

2011-12-07 22:08:27 4126

原创 Android RIL源码研究笔记 の ril_event

Android源码目录hardware/ril/libril目录中总共包含5个C/CPP文件,它们分别是ril_commands.h、ril_unsol_commands.h、ril_event.h、ril_event.cpp和ril.cpp。这篇文章主要分析ril_event的相关代码。   ril_event主要处理电话模块涉及的端口、modem等产生的事件,并将多个事件按时间顺序进行组织

2011-12-05 00:30:32 3168

原创 低版本VC工程转高版本VC工程时error C4430的解决方法

将低版本的VC工程转换成高版本的VC工程,编译时经常会遇到错误如下:error C4430:缺少类型说明符- 假定为int。注意: C++不支持默认int这主要是因为高版本的VC编译器提高了安全级别,此时有两种解决方法:1)在出错代码处添加合适的类型;2)修改VC编译器设置,步骤如下(此处以VS2008为例):在工程名右键点击选择“属性”,弹出工程的属性页,选择左边框中的“

2011-03-09 15:59:00 2097

原创 《Windows API巡礼》之MultiByteToWideChar函数和WideCharToMultiByte函数

<br />我们一般使用Windows函数MultiByteToWideChar将多字节字符串转换为宽字符字符串,函数原型如下:<br />int MultiByteToWideChar(__in UINT CodePage, //与多字节字符串关联的一个代码页值,一般设为CP_ACP__in DWORD dwFlags, //指定额外的转换控制,一般为0__in LPCSTR lpMultiByteStr, //要转换的多字节字符串__in int cbMultiByte,

2010-12-23 19:58:00 2620 1

原创 《Windows API巡礼》のShell_NotifyIcon函数和NOTIFYICONDATA结构

<br />Shell_NotifyIcon函数用于向Windows系统任务栏的状态区域发送消息,原型如下:<br />BOOL Shell_NotifyIcon( __in DWORD dwMessage, __in PNOTIFYICONDATA lpdata);<br /><br />其中<br />(1)参数dwMessage表示该函数要执行的操作,取值如下:<br />NIM_ADD:往状态区添加一个图标;在参数lpdata指向的结构中的参数uID或guidItem给这个图标指

2010-12-21 16:37:00 2483

原创 《Windows API巡礼》のGetObject函数和GradientFill函数

<br />GetObject函数用于从指定的图形对象中获取信息,原型如下:<br />int GetObject( __in HGDIOBJ hgdiobj, __in int cbBuffer, __out LPVOID lpvObject);<br /><br />其中<br />(1)参数hgdiobj是图形对象的句柄,图形对象可以是如下几种:逻辑位图、刷子、字体、调色板、画笔或者由函数CreateDIBSection创建的设备无关位图;<br />(2)参数cbBu

2010-12-20 22:14:00 1806

原创 《Windows API巡礼》のDisableThreadLibraryCalls函数

<br />DisableThreadLibraryCalls函数用于使指定DLL的<br />DLL_THREAD_ATTACH和DLL_THREAD_DETACH通知无效,这可减少某些应用程序的工作集空间。原型如下:<br />BOOL WINAPI DisableThreadLibraryCalls(<br />  __in  HMODULE hModule<br />);<br />参数hModule是指定DLL模块的句柄,可以使用LoadLibrary()、LoadLibraryEx()或GetM

2010-12-19 21:44:00 3089

原创 《ASCE1885的信息安全》のCryptoAPI---密钥的产生和交换函数

<br />在公开密码算法的前提下,数据的安全取决于密钥。因此,密钥的产生、销毁、交换(分发)是数据保密工作中的重要部分。<br />CryptoAPI密钥产生和交换函数主要有生成密钥函数CryptGenKey、派生密钥函数CryptDeriveKey、销毁密钥函数CryptDestroyKey、复制密钥函数CryptDuplicateKey、导出密钥函数CryptExportKey、导入密钥函数CryptImportKey、获得密钥参数函数CryptGetKeyParam、设置密钥参数函数CryptSet

2010-10-31 15:24:00 2598

原创 《ASCE1885的信息安全》のCryptoAPI---密码服务提供者CSP函数

<br />CryptoAPI的密码服务提供者函数主要有6个函数:<br />1)连接或断开CSP函数CryptAcquireContext、CryptReleaseContext;<br />2)枚举CSP函数CryptEnumProviders;<br />3)获得或设置默认CSP函数CryptGetDefaultProvider、CryptSetProvider;<br />4)获取或设置CSP参数函数CryptGetProvParam、CryptSetProvParam;<br /> <br />一

2010-10-30 19:49:00 1897

原创 《ASCE1885的信息安全》のCryptoAPI入门

<br />CryptoAPI是微软提供的一组加密函数,其功能是为应用程序开发者提供在Win32环境下使用加密、验证等安全服务时的标准加密接口。CryptoAPI处于应用程序和密码服务提供者CSP之间。CryptoAPI的编程模型和Windows系统的图形设备接口GDI类似,其中的CSP相当于图形设备驱动程序,加密硬件等同于图形硬件。<br /> <br />每个CSP都是一个独立的模块,可以执行所有的密码操作。CSP负责创建和销毁密钥并提供各种密码操作,每个CSP提供不同的CryptoAPI实现,并通过C

2010-10-30 15:58:00 1526

原创 《ASCE1885的网络编程》の套接字select模型

套接字Select模型使得Windows Sockets应用程序可以在同一时间内管理和控制多个套接字。该模型的核心是select()函数,在使用该函数时,还需要用到FD_SET、FD_ZERO、FD_ISSET和FD_CLR四个宏。套接字的select模型,能够使得Windows Sockets应用程序同时对多个套接字进行管理。调用select()函数检查当前各个套接字的当前状态。并且根据该函

2010-10-15 11:12:00 1909

原创 《Windows核心编程》の防御性编程--断言

防御性编程是提高软件质量技术的有益辅助手段,它的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。防御性编程关键在于严格的输入检查、预期的错误处理方法。下面介绍使用断言来进行防御性编程。断言通常是一个例程(routine)或一个宏(macros),断言通常包含有两个参数:布尔表达式和消息。布尔表达式的反面是一个错误,C标准库提供了一个assert宏,它只带有一个

2010-10-12 21:50:00 1423

原创 《MFC那点儿事》の设备上下文DC

<br />设备上下文DC是一个Windows数据结构,它包含了某个设备的绘制属性。通常,绘制调用都是借助于上下文对象,而这些设备上下文对象封装了用于画线、形状、文本等的Windows API。设备上下文是设备无关的,所以它既可以用于绘制屏幕,也可以用于绘制打印机甚至元文件。设备上下文在内存中创建,而内存经常受到扰动,所以它的地址是不固定的。因此,一个设备上下文句柄不是直接指向设备上下文对象,而是指向另外一个跟踪设备上下文地址的指针。<br /> <br />设备上下文可分为4种:<br />1)显示设备上

2010-10-03 21:05:00 2000

原创 《算法之美》の字符串相关问题の壹

题目:编写一个单词逆序输出的算法,例如输入“SEE YOU IN ANOTHER LIFE”,要求输出“LIFE ANOTHER IN YOU SEE”。解答:#includevoid ReverseWord(constchar* src, char* dest){          assert(src != NULL && dest != NULL);     constchar* head = src; //记住头指针     while(*src++);     int count = 0;    

2010-09-30 15:33:00 1967

原创 《ASCE1885的源码分析》のWM_*代码转字符串表示的函数

<br />一个将WM_*消息代码转换为字符串表示的函数:(打表法)<br /> <br />#include<windows.h><br /> <br />struct WMArray {<br />         UINT Code;<br />         char Message[100];<br />} waWMArray[] = {<br />         {0x0000, "WM_NULL"},{0x0001, "WM_CREATE"},{0x0002, "WM_DESTROY"},

2010-09-20 17:34:00 1511

原创 《ASCE1885的源码分析》の简单的进程封装类

<br />一个简单的进程封装类,该类允许我们新建一个远程进程,并对其进行控制。<br /> <br />进程类CProcess的头文件如下:<br />class CProcess{<br />    public:<br />        PROCESS_INFORMATION ProcessInfo; //进程结构信息<br />        STARTUPINFO  StartupInfo; //启动信息<br /> <br />        bool KillProcess(UINT);  

2010-09-18 22:00:00 1346

原创 《ASCE1885的源码分析》の动态改变数组大小

<br />一段简单的动态改变数组大小的代码,给初学者看看,详见代码:<br />#include<iostream><br /> <br />class Int_array<br />{<br />    staticint no_instances; //数组的实例个数<br />    int size;<br />    int len;<br />    int *array; //数组指针<br />public:<br />    Int_array(int);<br />    Int_ar

2010-09-15 21:04:00 1189

原创 《ASCE1885的源码分析》の基于冒泡排序的二分查找模板

<br />##########################################################################<br />ASCE1885的声明:本文源代码归属于:<br />author: Gonzales Cenelia<br />homepage: www.ai-search.4t.com<br />有增改!<br />###################################################################

2010-09-15 16:30:00 1371

原创 《ASCE1885的源码分析》の基于完成端口模型的TCP服务器框架

<br />使用IOCP的TCP服务器使用过程大体如下:<br />1)  使用CreateIoCompletionPort函数创建完成端口,并以该I/O完成端口为参数创建多个服务线程;<br />2)创建监听套接字;<br />3)接收客户端连接请求,返回服务套接字;<br />4)将服务套接字与完成端口绑定,并在该套接字上投递初始I/O操作请求;<br />5)返回步骤3);<br /> <br />服务线程的流程如下:<br />1)  调用GetQueuedCompletionPort函数等待获取完

2010-09-15 15:13:00 1567

原创 《ASCE1885的源码分析》の跨平台线程对象Thread封装基类

<br />首先当然是先定义头文件Thread.h咯,如下:<br />#ifndef _THREAD_H<br />#define _THREAD_H<br /> <br />#ifdef _WIN32<br />#include<windows.h><br />#else<br />#include<pthread.h><br />#endif<br /> <br />#ifdef _WIN32<br />typedefunsigned threadfunc_t;<br />typedefvoid* t

2010-09-11 20:00:00 2542

EditTextDemo

http://blog.csdn.net/ace1985/article/details/8172517 这篇博客的源码

2012-11-12

EmailDemo.rar

blog.csdn.net/ace1985/article/details/8119898 Android调用系统邮件类应用的正确实现方法的代码

2012-10-28

360Opti

360Opti

2012-09-27

SackOfViewAdapter

博客http://blog.csdn.net/ace1985/article/details/7988275的源码

2012-09-17

开源SectionList

开源SectionList

2012-08-24

jamendo.apk

jamendo.apk

2012-08-18

Desktop

ProxyHttpClient.java ConnectManager.java

2012-08-07

QZoneDemo

QZoneDemo

2012-08-03

百度贴吧布局框架的研究与实现(Android版本) 的源码

博客地址:http://blog.csdn.net/ace1985/article/details/7824431

2012-08-02

QZoneDemo

QZoneDemo

2012-08-01

Android意见反馈功能的代码框架

Android意见反馈功能的代码框架

2012-07-23

HTML.5与CSS.3权威指南

HTML.5与CSS.3权威指南 HTML.5与CSS.3权威指南

2012-05-09

《Hadoop开发者》期刊第4期

《Hadoop开发者》期刊第4期

2012-03-26

Linux防火墙

Linux防火墙(Linux.Firewalls.Attack.Detection.and.Response.with.iptables,.psad,.and.fwsnort)(美)拉什.中文高清PDF版.pdf

2012-03-14

Java加密与解密的艺术

Java加密与解密的艺术

2012-03-13

[疯狂Java:突破程序员基本功的16课].李刚.高清扫描版.zip.001

[疯狂Java:突破程序员基本功的16课].李刚.高清扫描版.zip.001

2012-03-09

[疯狂Java:突破程序员基本功的16课].李刚.高清扫描版.zip.002

[疯狂Java:突破程序员基本功的16课].李刚.高清扫描版.zip.002

2012-03-09

Panoramio Android源码

Android开源代码解读の地图照片应用Panoramio的实现详解系列的源代码(http://blog.csdn.net/ace1985/article/details/7289040)

2012-02-24

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

TA关注的人

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