2012年2月29日

android编译错误及解决方法

摘要: 1.设置编译选项为make -j5 TARGET_ARCH=x86 TARGET_PRODUCT=generic TARGET_SIMULATOR=false TARGET_BUILD_TYPE=release TARGET_OS=linux LOCAL_PRELINK_MODULE=false2.build/core/envsetup.mk 中 91行 设置为x86(该步骤可以省略)3.修改build/tools/dexpreopt目录中Android.mk为Android-arm.mk,不编译该模块(该模块以来与emulator)。make: *** No rule to make tar 阅读全文

posted @ 2012-02-29 16:24 ①块腹肌 阅读(23758) 评论(0) 推荐(1) 编辑

2012年2月27日

android process lifecycle 进程等级

摘要: 首先,andorid的内核是linux,ios的内核是unix,他们的线程销毁都是由系统决定的。android的process有5个等级:1、Foreground Process (前台进程)foreground 的优先级最高,他处于前台a 正处于Activity Resume()状态b 正处于与bound服务交互的状态c 正处于服务在前台的状态,(startForeground()被调用)d Service生命周期函数正在被执行(onCreate(),onStart(),onDestroy())e BroadcastReceiver正在执行onReceive()方法杀死Foreground 阅读全文

posted @ 2012-02-27 18:09 ①块腹肌 阅读(793) 评论(0) 推荐(0) 编辑

Cocoa 编码规范

摘要: > Code Naming Basics 代码命名基础 在面向对象软件库的设计过程中,开发人员经常忽视对类,方法,函数,常量以及其他编程接口元素的命名。本节讨论大多数Cocoa接口的一些命名约定。 >> General Principles 一般性原则 >>> Clarity 清晰性 ● 最好是既清晰又简短,但不要为简短而丧失清晰性 代码 点评 insertObject:atInde... 阅读全文

posted @ 2012-02-27 13:40 ①块腹肌 阅读(1002) 评论(0) 推荐(0) 编辑

android 4.0.3最新源码下载编译

摘要: 最新的android4.0源代码公布以后,相信很多人和我一样都跃跃欲试,其实4.0的代码下载和编译和以前的版本差不多,但是有一些小的差别,写下来供不明真相的新手来参考 首先,开发环境,google建议在ubuntu10.0.4下,并且最好是64位,既然是为了工作和学习,就尽量按照官方要求的来吧。 P 阅读全文

posted @ 2012-02-27 13:38 ①块腹肌 阅读(24794) 评论(4) 推荐(2) 编辑

Objective C 类方法

摘要: 一,Objective C 的类方法(class method),即 static 方法,是用 + 修饰的方法。类方法是属于类对象的,所以无需创建类的实例对象我们就可以直接使用它们。使用形式为:[ClassName classMethod];在这里 ClassName 代表的就是一个类对象,而不是作为一种类型。类名只有出现在接收消息的表达式中才代表一个类对象,其他情况下都表示一种类型。二,类方法可以继承自基类,就像普通的类成员方法一样。有一个特别的类方法 + (void) initialize,在类接收到任何消息之前,运行时系统会向类对象发送这个消息,因此我们可以在这个函数里对类对象做一些初始 阅读全文

posted @ 2012-02-27 13:36 ①块腹肌 阅读(6618) 评论(0) 推荐(0) 编辑

2012年2月26日

让你的模拟器不再卡:VirtualBox安裝 Android-x86 4.0

摘要: 为什么Android虚拟机比iOS和WP7的虚拟机要慢很多呢?原因如下:1. Android 模拟器模拟的是 ARM 的体系结构(arm-eabi),而 iOS 和 WP7 的模拟器的目标体系结构都是 x86 的,另外 iOS 的模拟器中运行的 App 也是编译为 x86 的。这样一来 Android 模拟器需要做一些额外的二进制翻译工作。 2. Android 模拟器用的是 QEMU 的全系统模式(full system),也就说它模拟时需要启动整个 GUEST 系统,初始化各种模拟设备。相反的,iOS 和 WP7 的模拟器只是 user-mode 的模拟。 3. 在 Android 模拟器 阅读全文

posted @ 2012-02-26 16:39 ①块腹肌 阅读(40999) 评论(1) 推荐(2) 编辑

2012年2月21日

CursorAdapter与CursorFilter机制

摘要: Android为ListView提供了Filter对象,对显示的条目进行过滤。最常见的用法就是Contact中,根据在输入框中输入姓名的字母显示过滤。当然android系统中默认提供的过滤功能非常有限,不支持号码或是其他信息过滤。我曾见过有人为了支持对号码的过滤,就将 Android提供的那套机制屏蔽掉,每当过滤事件发生时,手动起AsyncQueryHander去异步查询。当查询完毕时调用 CursorAdapter.changeCursor更新Cursor。虽然基本上做法没错,流程上也跟Android实现过滤的机制大体相同,但重复了制造轮子的过程,而原有的轮子,只需稍加修改足以满足新的需求。 阅读全文

posted @ 2012-02-21 01:39 ①块腹肌 阅读(1470) 评论(0) 推荐(0) 编辑

2012年2月17日

android_launcher的源码详细分析

摘要: 转载请注明出处:http://blog.csdn.net/fzh0803/archive/2011/03/26/6279995.aspx去年做了launcher相关的工作,看了很长时间。很多人都在修改launcher,但还没有详细的文档,把自己积累的东西分享出来,大家一起积累。这份源码是基于2.1的launcher2,以后版本虽有变化,但大概的原理一直还是保留了。一、主要文件和类1.Launcher.java:launcher中主要的activity。2.DragLayer.java:launcher layout的rootview。DragLayer实际上也是一个抽象的界面,用来处理拖动和对 阅读全文

posted @ 2012-02-17 10:48 ①块腹肌 阅读(2308) 评论(1) 推荐(0) 编辑

2012年2月11日

ios音频播放

摘要: 在 iPhone 应用或者是游戏的开发过程中,对声音的支持是必不可少的。在我做过的几个应用中,每个都涉及到音效,所以在这里做个简单的归纳,很多都是引用自《iPhone Application Programming Guide》(需要有 Apple ID 才能打开链接),加了一些实际使用的经验。iPhone OS 主要提供以下了几种播放音频的方法:System Sound ServicesAVAudioPlayer 类Audio Queue ServicesOpenAL1. System Sound ServicesSystem Sound Services 是最底层也是最简单的声音播放服务, 阅读全文

posted @ 2012-02-11 17:43 ①块腹肌 阅读(10345) 评论(0) 推荐(3) 编辑

delegate和protocol

摘要: iOS开发上对delegate使用广泛。记在这里,如果有新人Google到了,希望能有点帮助。protocol和delegate完全不是一回事,放在一起说,只是因为我们经常在同一个头文件里看到这两个word。protocol和java里interface的概念类似,是Objective-C语法的一部分。定义protocol如下@protocol ClassADelegate- (void)methodA;- (void)methodB;@end那么就是定义了一组函数,这组函数放在一起叫作一个protocol,也就是协议。函数是需要被实现的,所以如果对于class如下@interface Cla 阅读全文

posted @ 2012-02-11 14:25 ①块腹肌 阅读(818) 评论(0) 推荐(1) 编辑

2012年2月8日

iOS中NSArray的过滤

摘要: //找出一个数组NSFileManager*fileManager=[NSFileManagerdefaultManager];NSString*defaultPath=[[NSBundlemainBundle]resourcePath];NSError*error;NSArray*directoryContents=[fileManagercontentsOfDirectoryAtPath:defaultPatherror:&error]//匹配字符串,反回结果,SELF==表示数组中每一个元素NSString*match=@"imagexyz-999.png"; 阅读全文

posted @ 2012-02-08 17:23 ①块腹肌 阅读(2128) 评论(0) 推荐(1) 编辑

2012年2月3日

iOS 开发之EXC_BAD_ACCESS异常分析(转)

摘要: 一:EXC_BAD_ACCESS异常介绍在调试objective-c程序的过程中,程序crash的现象在所难免,但大部分的错误都能够通过显示的错误原因结合NSLog的方式来解决,比如NSInvalidArgumentException(名字就能看出来是什么错误)等,实在搞不定还有debug这个杀手锏。但唯独EXC_BAD_ACCESS这个异常太难处理了,名字看不出来是什么原因,其他提示也没有,debug都搞不定。先来介绍下EXC_BAD_ACCES:这个异常基本上是内存使用不当造成的,而且90%的错误来源在于对一个已经释放的对象进行release操作。二:分析方法为工程运行时加入 NSZomb 阅读全文

posted @ 2012-02-03 16:59 ①块腹肌 阅读(4481) 评论(0) 推荐(0) 编辑

ios iphone开发-内存管理

摘要: 关于所有权所有权是iPhone内存管理的核心思想,对象的所有者负责在使用完对象后进行释放。一个对象可以有多个所有者,当它没有所有者时将被设置为取消分配(deallocation)。创建对象时,所有权通过alloc、new、或者copy的方式建立,之后通过调用retain或者通过Cocoa函数来分配和复制对象的所有权。内存释放有两种方式,一种方法是明确地请求释放对象的所有权,另一种方法则是使用自动释放池(auto-release pool)。所有权的背后是一个和引用有关的运算系统,iPhone SDK的大多数对象使用这个系统,彼此之间建立着很强的引用和参照。当你创建一个对象时,引用值为1,调用一 阅读全文

posted @ 2012-02-03 13:04 ①块腹肌 阅读(2881) 评论(0) 推荐(0) 编辑

2012年2月2日

NSString字符串常用方法

摘要: /*******************************************************************************************NSString*******************************************************************************************///一、NSString/*----------------创建字符串的方法----------------*///1、创建常量字符串。NSString *astring = @"This is a Str 阅读全文

posted @ 2012-02-02 15:32 ①块腹肌 阅读(13143) 评论(0) 推荐(1) 编辑

2012年1月15日

推荐10款非常优秀的HTML5开发工具

摘要: HTML5发展如火如荼,随着各大浏览器对HTML5技术支持的不断完善以及HTML5技术的不断成熟,未来HTML5必将改变我们创建Web应用程序的方式。今天这篇文章向大家推荐10款优秀的HTML5开发工具,帮助你更高效的编写HTML5应用。1.InitializrInitializr是制作HTML5网站最好的入门辅助工具,你可以使用提供的特色模板快速生成网站,也可以自定义,Initializr会为你生成代码简洁的可定制的网页模板。2.HTML5demos想知道你的浏览器是否支持HTML5 Canvas吗?想知道Safari是否可以运行简单的HTML5聊天客户端吗?HTML5demos会告诉你每一 阅读全文

posted @ 2012-01-15 14:25 ①块腹肌 阅读(576) 评论(0) 推荐(0) 编辑

2012年1月13日

#import与@class的区别

摘要: 1.import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑,后面会再告诉你。2.在头文件中, 一般只需要知道被引用的类的名称就可以了。 不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。 而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。3.在编译效率方面考虑,如果你有100个头文件都#import了同一个头文件,或者这些文件是依次引用的,如A–>B, B–>C, C–>D这 阅读全文

posted @ 2012-01-13 15:38 ①块腹肌 阅读(19923) 评论(1) 推荐(4) 编辑

2012年1月2日

SD功能移植

摘要: SDcard porting一、进程启动和配置文件的分析vold的全称是volume daemon。实际上是负责完成系统的CDROM, USB大容量存储,MMC卡等扩展存储的挂载任务自动完成的守护进程。它提供的主要特点是支持这些存储外设的热插拔。在Android上的这个vold系统和GNU/Linux的之间存在很大的差异,这里主要是分析Android上的vold系统的处理过程。自Android 2.2开始,vold又做了大改动,升级为vold 2.0,之前的配置文件是 system/etc/vold.conf,vold 2.0变为system/etc/vold.fstab。1、启动vold . 阅读全文

posted @ 2012-01-02 13:17 ①块腹肌 阅读(1756) 评论(0) 推荐(0) 编辑

USB充电插拔与USB Debugging connect提示

摘要: 在 packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java找到关于 USB Debug Enable 的代码:1 Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 0 ); Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 0); 别处将根据其值动态变化做出相应动作如状态栏消息提示。void observ... 阅读全文

posted @ 2012-01-02 13:15 ①块腹肌 阅读(3426) 评论(0) 推荐(0) 编辑

IOS上的socket通信

摘要: 客户端:导入头文件:#import <sys/socket.h>#import <netinet/in.h>#import <arpa/inet.h>#import <unistd.h>1. 创建连接CFSocketContext sockContext = {0, // 结构体的版本,必须为0self, // 一个任意指针的数据,可以用在创建时CFSocket对象相关联。这个指针被传递给所有的上下文中定义的回调。 NULL, // 一个定义在上面指针中的retain的回调, 可以为NULL NULL, NULL};CFSocketRef _so 阅读全文

posted @ 2012-01-02 11:20 ①块腹肌 阅读(48854) 评论(2) 推荐(0) 编辑

使用UIActivityIndicatorView

摘要: UIActivityIndicatorView可以通过动画的效果展示延时等待提示。这里通过线程休眠3秒钟模拟可能造成延时的操作:[NSThread sleepForTimeInterval:3];如果碰到这种延时操作,应该单独使用线程来执行,而不是用主线程。在对应的头文件中加入一个操作队列:NSOperationQueue *operationQueue;在控制器的viewDidLoad方法中初始化这个队列实例:- (void)viewDidLoad { operationQueue = [[NSOperationQueue alloc] init]; [operationQueue setM 阅读全文

posted @ 2012-01-02 11:16 ①块腹肌 阅读(598) 评论(0) 推荐(0) 编辑

2012年1月1日

SurfaceView 透明和半透明

摘要: 透明//Transparent半透明//Translucentimportandroid.app.Activity;importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.Canvas;importandroid.graphics.PixelFormat;importandroid.os.Bundle;importandroid.view.MotionEvent;importandroid.view.Surfac 阅读全文

posted @ 2012-01-01 23:06 ①块腹肌 阅读(11670) 评论(0) 推荐(0) 编辑

SurfaceView 绘图覆盖刷新及脏矩形刷新方法

摘要: SurfaceView在Android中用作游戏开发是最适宜的,本文就将演示游戏开发中常用的两种绘图刷新策略在SurfaceView中的实现方法。首先我们来看一下本例需要用到的两个素材图片:bj.jpg就是一个渐变图,用作背景。question.png是一个半透明的图像,我们希望将它放在上面,围绕其圆心不断旋转。实现代码如下:package SkyD.SurfaceViewTest; import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.g 阅读全文

posted @ 2012-01-01 23:01 ①块腹肌 阅读(2238) 评论(0) 推荐(0) 编辑

Android SurfaceView 的应用

摘要: SurfaceView 由于可以直接从内存或者DMA等硬件接口取得图像数据,因此是个非常重要的绘图容器,网上介绍 SurfaceView的用法有很多,写法也层出不同,例如继承SurfaceView类,或者继承SurfaceHolder.Callback类等,这个可以根据功能实际需要自己选择,我这里就直接在普通的用户界面调用SurfaceHolder的lockCanvas和 unlockCanvasAndPost。对比下面的第二、三两图,三图用.lockCanvas(null),而二图用.lockCanvas(new Rect(oldX, 0, oldX + length, getWindowM 阅读全文

posted @ 2012-01-01 22:50 ①块腹肌 阅读(1057) 评论(0) 推荐(0) 编辑

2011年12月31日

解密回声消除技术--转

摘要: 一、前言因为工作的关系,笔者从2004年开始接触回声消除(Echo Cancellation)技术,而后一直在某大型通讯企业从事与回声消除技术相关的工作,对回声消除这个看似神秘、高端和难以理解的技术领域可谓知之甚详。要了解回声消除技术的来龙去脉,不得不提及作为现代通讯技术的理论基础——数字信号处理理论。首先,数字信号处理理论里面有一门重要的分支,叫做自适应信号处理。而在经典的教材里面,回声消除问题从来都是作为一个经典的自适应信号处理案例来讨论的。既然回声消除在教科书上都作为一种经典的具体的应用,也就是说在理论角度是没有什么神秘和新鲜的,那么回声消除的难度在哪里?为什么提供回声消除技术(不管是芯 阅读全文

posted @ 2011-12-31 13:32 ①块腹肌 阅读(12837) 评论(0) 推荐(1) 编辑

2011年12月21日

StrictMode 使用

摘要: 从Android2.3开始提供了一个新的类StrictMode,该类可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者改进程序,使主线程处理UI和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞。推荐博客:http://www.cnblogs.com/zelos/archive/2011/02/27/1966403.htmlANR窗口产生的原因是多种多样的。程序的主线程因为IO读写或网络阻塞而导致被阻塞了,外部存储设备被独占了或系统负荷(load)过高(即不是自己编写的程序的问题,可能是系统或者其他第三方程序导致的问题),都有可能导致ANR窗口的出现。 从A 阅读全文

posted @ 2011-12-21 16:40 ①块腹肌 阅读(6764) 评论(0) 推荐(1) 编辑

导航