05 2012 档案

摘要:回退堆栈在Fragment中被编辑的事务能够放在它自己的Activity中回退堆栈内。当用户在该Activity中按下返回按钮时,在回退堆栈中的任何事务在Activity自己被结束之前会被弹出堆栈。例如,实例化一个带有整数参数的简单的Fragment对象,并且把这个整数显示在它的UI的一个TextView中:publicstaticclassCountingFragmentextendsFragment{ int mNum; /** * Create a new instance of CountingFragment, providing "num" * as an ar 阅读全文
posted @ 2012-05-31 20:53 移动应用开发 阅读(168) 评论(0) 推荐(0) 编辑
摘要:UIActionSheet是在IOS弹出的选择按钮项,可以添加多项,并为每项添加点击事件。为了快速完成这例子,我们打开Xcode 4.3.2, 先建立一个single view application。然后再xib文件添加一个button,用来弹出sheet view。1、首先在.h文件中实现协议,加代码的地方在@interface那行的最后添加<UIActionSheetDelegate>,协议相当于java里的接口,实现协议里的方法。@interface sheetviewViewController : UIViewController<UIActionSheetDel 阅读全文
posted @ 2012-05-31 19:38 移动应用开发 阅读(196) 评论(0) 推荐(0) 编辑
摘要:1.继承关系java.lang.Object|__android.app.Fragment实现接口:ComponentCallbacks2 View.OnCreateContextMenuListener引入版本:API Level 11已知的子类:DialogFragment、ListFragment、PreferenceFragment、WebViewFragment2.类概要一个Fragment是应用程序的用户界面或行为的一个片段,它能够被放置在一个Activity中。通过FragmentManager对象来实现与Fragment对象的交互,能够通过Activity.getFragmen 阅读全文
posted @ 2012-05-31 11:56 移动应用开发 阅读(939) 评论(0) 推荐(0) 编辑
摘要:根据需求要来实现一个类似微信的语音通话效果,想来下,现在来实现一个简单那的模型,可供遇到的人可作参考:废话不多说就直接贴代码吧:RecoderDemo.java:package com.jankey.record;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.graphics.Color;import android.media.MediaPlayer;import 阅读全文
posted @ 2012-05-31 00:34 移动应用开发 阅读(643) 评论(0) 推荐(0) 编辑
摘要:Gallery可以显示一系列的图片,并且可以横向滑动。下面展示如何使用Gallery去显示一系列的图片。1. 创建一个工程,Gallery。2. main.xml中的代码。<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_hei 阅读全文
posted @ 2012-05-30 20:36 移动应用开发 阅读(239) 评论(0) 推荐(0) 编辑
摘要:首先,我们必须要了解什么是RSS:RSS 指 Really Simple Syndication(真正简易联合)RSS 使您有能力聚合(syndicate)网站的内容RSS 定义了非常简单的方法来共享和查看标题和内容RSS 文件可被自动更新RSS 允许为不同的网站进行视图的个性化RSS 使用 XML 编写 RSS 被设计用来展示选定的数据。如果没有 RSS,用户就不得不每日都来您的网站检查新的内容。对许多用户来说这样太费时了。通过 RSS feed(RSS 通常被称为 News feed 或 RSS feed),用户们可以使用 RSS 聚合器来更快地检查您的网站更新(RSS 聚合器是用来聚集. 阅读全文
posted @ 2012-05-30 19:06 移动应用开发 阅读(312) 评论(0) 推荐(0) 编辑
摘要:在ios的程序中,Tab Bar的使用率很高,几个视图需要切换的时候,就用到tabbar。今天的程序实现的效果是这样的,底部有几个tab Item,对应的有几个视图,切换tab Item,切换到对应的视图。实现效果如下:为了更好理解使用用tabbar和切换视图,我们创建一个Empty Application。1、打开Xcode ,新建项目2、创建View Controller在项目上按花键+N创建新文件,创建 Objective-C class 文件,按Next按钮,subClass 选UIViewController 。勾选上 xib选项以同样方式创建另外三个ViewController , 阅读全文
posted @ 2012-05-30 11:43 移动应用开发 阅读(523) 评论(0) 推荐(0) 编辑
摘要:语法(SYNTAX):<uses-sdkandroid:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer"/>被包含于(CONTAINED IN):<manifest>说明(DESCRIPTION):这个元素用API 的级别(一个整数)来说明应用程序会跟哪些Android平台版本兼容。由应用程序给出的API级别会跟给定不同的设备中的Android系统的API级别比较。尽管这个元素被用 阅读全文
posted @ 2012-05-30 08:17 移动应用开发 阅读(294) 评论(0) 推荐(0) 编辑
摘要:尽管Java不像C/C++那样需要手工管理内存资源,而是通过更为方便、更为智能的垃圾回收机制来帮助开发者清理过期的资源。即便如此,内存泄露问题仍然会发生在你的程序中,只是和C/C++相比,Java中内存泄露更加隐匿,更加难以发现,见如下代码:[java] view plaincopy//Canyouspotthe"memoryleak"?importjava.util.*;publicclassStack{privateObject[]elements;privateintsize=0;privatestaticfinalintDEFAULT_INITIAL_CAPACIT 阅读全文
posted @ 2012-05-29 22:03 移动应用开发 阅读(318) 评论(0) 推荐(0) 编辑
摘要:*利用组合(composition)和委托(delegation)可以在运行时实现继承行为的效果,动态地给对象加上新的行为。*利用继承扩展子类的行为,是在编译时静态决定的;利用组合的做法,可以在运行时动态地扩展对象的行为。软件设计原则:类应该对扩展开放,对修改关闭。这就是我们常说的开放-关闭原则。*开放-关闭原则使类容易扩展,在不修改代码的情况下,通过搭配实现新的行为。这样的设计可以应对改变,比如增加新功能或需求发生变更。OO设计技巧:允许系统在不修改代码的情况下,进行功能扩展。*装饰者模式:动态地将责任加到对象身上。如果要扩展功能,装饰者模式提供了比继承更有弹性的替代方案。*装饰者模式中,装 阅读全文
posted @ 2012-05-29 18:29 移动应用开发 阅读(212) 评论(0) 推荐(0) 编辑
摘要:很多时候,我们在写Android程序都需要用到权限,因为这涉及到安全问题,下面就为大家提供了一些常用的权限。程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下:1. android.permission.ACCESS_CHECKIN_PROPERTIES允许读写访问”properties”表在 checkin数据库中,改值可以修改上传( Allows read/write access to the “properties” table in the checkin database, to change values that get. 阅读全文
posted @ 2012-05-29 18:07 移动应用开发 阅读(213) 评论(0) 推荐(0) 编辑
摘要:一、关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)二、AndroidManifest.xml结构<?xmlversion="1.0&qu 阅读全文
posted @ 2012-05-29 18:03 移动应用开发 阅读(229) 评论(0) 推荐(0) 编辑
摘要:1、Android dvm的进程和Linux的进程,应用程序的进程是否为同一个概念DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念。2、sim卡的EF文件有何作用sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本身可以有自己的操作系统,EF就是作存储并和手机通讯用的3、嵌入式操作系统内存管理有哪几种,各有何特性?页式,段式,段页,用到了MMU,虚拟空间等技术4、什么是嵌入式实时操作系统, Android操作系统属于实时操作系统吗?、嵌入式实时 阅读全文
posted @ 2012-05-29 18:01 移动应用开发 阅读(759) 评论(0) 推荐(0) 编辑
摘要:Dalvik虚拟机支持垃圾收集,但是这不意味着你可以不用关心内存管理。你应该格外注意移动设备的内存使用,在上面内存空间是受到限制的。在这篇 文章里面,我们来看看Android SDK里面的一些内存剖析工具(profiling tools)是如何帮助我们修整应用程序的内存使用。一些内存使用问题是很明显的,例如,如果在每次用户触摸屏幕的时候应用程序有内存泄露,将会有可能触发OutOfMemoryError,最终程序崩溃。另外一些问题却很微妙,也许只是降低应用程序和整个系统的性能(当高频率和长时间地运行垃圾收集器的时候)。必要的工具:Android SDK提供了2个主要的剖析应用程序内存使用情况的工 阅读全文
posted @ 2012-05-29 17:58 移动应用开发 阅读(188) 评论(0) 推荐(0) 编辑
摘要:Google Play会过滤对用户可见的应用程序,以便用户只能看到和下载那些跟他们的设备兼容的应用程序。过滤应用的程序的方法之一是Android版本的兼容性。Google Play检查每个应用程序清单中的<uses-sdk>属性,从而建立它的兼容版本的范围,然后基于对用户的Android系统版本API的比较来显示和隐藏应用程序。更多信息请看Filters on Google Play(http://developer.android.com/guide/appendix/market-filters.html) 阅读全文
posted @ 2012-05-29 17:07 移动应用开发 阅读(133) 评论(0) 推荐(0) 编辑
摘要:近期学习Android,看到文章对Context的讲解比较少,所以上网查了下,还可以。Context字面意思上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过 Context才能识别调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的 实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来 阅读全文
posted @ 2012-05-29 16:55 移动应用开发 阅读(176) 评论(0) 推荐(0) 编辑
摘要:从网上看到的一篇文章,感觉不错,分享下1.Android团队提供的示例项目 如果不是从学习Android SDK中提供的那些样例代码开始,可能没有更好的方法来掌握在Android这个框架上开发。由Android的核心开发团队提供了15个优秀的示例项目,包含了游戏、图像处理、时间显示、开始菜单快捷方式等。 地址:http://code.google.com/p/apps-for-android/ 2.Remote Droid RemoteDroid是一个Android应用,能够让用户使用自己的无线网络使用无线键盘、触摸屏操作手机。这个项目为开发者提供了如网络连接、触摸屏手指运动等很好的样... 阅读全文
posted @ 2012-05-29 16:52 移动应用开发 阅读(129) 评论(0) 推荐(0) 编辑
摘要:一、NINetworkImageView是Nimbus下载图片的类,类是这么描述的:OverviewA network-enabled image view that consumes minimal amounts of memory.Intelligently crops and resizes images for optimal memory use and uses threads to avoid processing images on the UI thread.消耗很少的内存使用网络图片.使用线程以避免在UI线程上下载处理,并智能,调整优化内存的使用图像。真的很好用,一步加载 阅读全文
posted @ 2012-05-29 16:01 移动应用开发 阅读(182) 评论(0) 推荐(0) 编辑
摘要:strchr函数用于在字符串s中搜索字符c,如果找到了字符c,则返回指向字符c的指针,如果没有找到则返回null。函数实现如下:290 /**291 * strchr - Find the first occurrence of a character in a string292 * @s: The string to be searched293 * @c: The character to search for294 */295 char *strchr(const char *s, int c)296 {297 for (; *s != (char)c; ++s)298 ... 阅读全文
posted @ 2012-05-29 15:58 移动应用开发 阅读(423) 评论(0) 推荐(0) 编辑
摘要:在Linux这类操作系统中,有大量的命令行处理程序,例如gcc -o test test.c,那么像这么多的命令行参数它是怎么去分析的呢,就要用到这里介绍的getopt函数。getopt函数最早出现在UNIX操作系统中,因为早期与操作系统交互全是命令终端下,最后这个函数就作为了GNU C的一部分。函数原型如下:int getopt(int argc, char * const argv[], const char *optstring);argc、argv当然是main中的argc和argv了,分别代表命令行参数个数和命令行参数列表。要使用这个函数,需要包含头文件unistd.... 阅读全文
posted @ 2012-05-29 15:41 移动应用开发 阅读(228) 评论(0) 推荐(0) 编辑
摘要:软件功能参考下表中列出了由当前大多数发布的发布的Android平台所支持的软件功能描述符。对于应用程序要使用或需要的单一功能,都要在应用程序的清单的<uses-feature>元素中使用android:name属性来进行声明。功能属性值说明注释Live Wallpaperandroid.software.live_wallpaper应用程序使用或提供Live WallpapersSIP/VOIPandroid.software.sip应用程序要使用设备上的SIP服务android.software.sip.voip子功能。应用程序要使用设备上的基于SIP的VOIP服务。声明这个子功 阅读全文
posted @ 2012-05-29 15:36 移动应用开发 阅读(236) 评论(0) 推荐(0) 编辑
摘要:功能参考下面列出了关于软/硬件功能,以及能够暗示Google Play的权限的参考信息。硬件功能下面列出了被大多数当前发布的平台所支持的硬件功能描述。对于应用程序所使用或需求的每一个硬件功能,都要在一个独立的<uses-feature>元素的android:name属性中声明。功能类型:Audio功能描述符:Android.hardware.audio.low_latency说明:应用程序使用设备上的低延迟的音频通道,并且对于输入或的延迟或之后是敏感的。备注:功能类型:Audio功能描述符:Android.hardware.audio.low_latency说明:应用程序要使用设备 阅读全文
posted @ 2012-05-29 11:53 移动应用开发 阅读(800) 评论(0) 推荐(0) 编辑
摘要:动态添加Button的效果就是点击之后,生成一个按钮,并为按钮添加点击的方法。1、在xib文件上拖拽添加一个button,标题为:添加button。2、按住ctrl键拖拽到addbuttonViewController.m文件空白处,生成IBAction,填充代码后如下:- (IBAction)addButton:(id)sender { CGRect frame = CGRectMake(90, 200, 200, 60); UIButton *someAddButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];... 阅读全文
posted @ 2012-05-29 10:03 移动应用开发 阅读(338) 评论(0) 推荐(0) 编辑
摘要:试比较以下两行代码在被多次反复执行时的效率差异:由于String被实现为不可变对象,JVM底层将其实现为常量池,既所有值等于"stringette" 的String对象实例共享同一对象地址,而且还可以保证,对于所有在同一JVM中运行的代码,只要他们包含相同的字符串字面常量,该对象就会被重用。我们继续比较下面的例子,并测试他们在运行时的效率差异:[java] view plaincopyBooleanb=Boolean.valueOf("true");Booleanb=newBoolean("true");前者通过静态工厂方法保证了每次 阅读全文
posted @ 2012-05-28 15:02 移动应用开发 阅读(202) 评论(0) 推荐(0) 编辑
摘要:有一些工具类(utility class)不希望被实例化,实例对它没有任何意义。然而,在缺少显式构造器的情况下,编译器会自动提供一个公有的、无参的缺省构造器(default constructor),对于用户而言,这个构造器与其他的构造器没有任何区别。在已发行的API中常常可以看到一些被无意识实例化的类。企图通过将类做成抽象类来强制该类不可被实例化,这是行不通的。该类可以被子类化,并且该子类也可以被实例化。这样做甚至会误导用户,以为这种类是专门为了继承而设计的。然后,有一些简单的习惯用法可以确保类不可被实例化。我们只要让这个类包含私有构造器,它就不能被实例化了:[java] view plai 阅读全文
posted @ 2012-05-28 15:01 移动应用开发 阅读(131) 评论(0) 推荐(0) 编辑
摘要:对于单实例模式,相信很多开发者并不陌生,然而如何更好更安全的创建单实例对象还是需要一些推敲和斟酌的,在Java中主要的创建方式有以下三种,我们分别作出解释和适当的比较。1. 将构造函数私有化,直接通过静态公有的final域字段获取单实例对象:[java] view plaincopypublicclassElvis{publicstaticfinalElvisINSTANCE=newElvis();privateElivs(){...}publicvoidleaveTheBuilding(){...}}这样的方式主要优势在于简洁高效,使用者很快就能判定当前类为单实例类,在调用时直接操作Eliv 阅读全文
posted @ 2012-05-28 15:00 移动应用开发 阅读(152) 评论(0) 推荐(0) 编辑
摘要:静态工厂和构造器有个共同的局限性:它们都不能很好地扩展到大量的可选参数。考虑用一个类表示包装食品外面显示的营养成分标签。这些标签中有几个域是必须的:每份的含量、每罐的含量以及每份的卡路里,还有超过20个可选域:总脂肪量、饱和脂肪量、转化脂肪、胆固醇、钠等等。大多数产品在某几个可选域中都会有非零的值。对于这样的类,应该用哪种构造器或者静态方法来编写呢?1. 重叠构造器模式[java] view plaincopy//Telescopingconstructorpattern-doesnotscalewell!publicclassNutritionFacts{privatefinalintser 阅读全文
posted @ 2012-05-28 14:59 移动应用开发 阅读(225) 评论(0) 推荐(0) 编辑
摘要:对于类而言,为了让客户端获取它自身的一个实例,最常用的方法就是提供一个公有的构造器。类也可以提供一个公有的静态工厂方法,它只是一个返回类的实例的静态方法。下面是一个来自Boolean的简单示例。[java] view plaincopypublicstaticBooleanvalueOf(booleanb){returnb?Boolean.TRUE:Boolean.False;}静态工厂方法与构造器不同的第一大优势在于,它们有名称。静态工厂方法与构造器不同的第二大优势在于,不必在每次调用它们的时候都创建一个新对象。静态工厂方法与构造器不同的第三大优势在于,它们可以返回原返回类型的任何子类型的对 阅读全文
posted @ 2012-05-28 14:03 移动应用开发 阅读(209) 评论(0) 推荐(0) 编辑
摘要:*观察者模式:定义了对象之间的一对多依赖关系,当一个对象(主题对象)的状态改变时,它的所有依赖者(观察者对象)都会收到通知并自动更新。*观察者模式实现了主题对象与观察者对象之间的松耦合,当有新的观察者时,无需修改主题对象的代码,只需要新的观察者对象实现接口。在程序运行的过程中,可以随时注册和删除观察者而不影响主体对象。*观察者模式使主题(Subject)对象和观察者(Observer)对象都可以被轻易地复用。软件设计原则:努力在交互对象之间实现松耦合,使它们之间的互相依赖降到最低,从而提高可复用性。*Java内置了对观察者模式的支持:java.util.Observable类和java.uti 阅读全文
posted @ 2012-05-28 13:28 移动应用开发 阅读(164) 评论(0) 推荐(0) 编辑
摘要:Berkeley db(独立介绍)本文由浅入深,详细介绍了 Heritrix 在 Eclipse 中的配置、运行。最后对其进行扩展,介绍如何实现只抓取特定网站的页面。通过本文,读者可以了解 Heritrix 的相关特点以及在 Eclipse 中的配置运行,能够从零开始构建特定站点的专有爬虫,从而为网站增加全文检索服务。背景随着网站内容的增加,为其添加搜索功能是一个常见的需求,搜索引擎也已成为互联网最重要的应用之一。你是否觉得普通的数据库检索已经不能满足你的查询需求了呢?是否希望花最小的代价为你的网站建立一个像 Google、百度那样的全文搜索引擎?是否希望创建自己专有的搜索引擎而不是想尽办法 阅读全文
posted @ 2012-05-28 01:09 移动应用开发 阅读(280) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/dongfengsun/article/details/4870650前言:iPhone是个极具艺术性的平台,相信大家在开发过程中一定有很多感触,希望能写出来一起交流,所以开了这个帖子,以后还会维护。如果大家和我一样有感触的话,可以跟在帖子下面,最好简短并附上中英文:)1:如果无法保证子类行为的一致性,那么就用委托If the subClass cann't keep with superClass,use delegate rather than inheritance.2:屏幕上看到的,都是UIVewEverything you se 阅读全文
posted @ 2012-05-27 17:21 移动应用开发 阅读(181) 评论(0) 推荐(0) 编辑
摘要:面向对象(OO)的四个基本概念是:抽象、封装、继承、多态。软件设计原则:封装变化--把软件中那些在将来可能产生变化的地方独立出来,与其他部分分割以减少变化时对它们的影响。这样的设计可以使系统变得有弹性,更好地应对变化。软件设计原则:针对接口编程,而不针对实现编程。依据该原则,声明一个变量时要把它声明为超类型(接口或抽象类),而不是实现类。*继承的好处是实现了代码的复用。*软件开发人员花费在软件开发完成之“后”的时间要远多于完成之“前”,所以应致力于提高可维护性和可扩展性上的复用程度。软件设计原则:多用组合,少用继承。使用组合的方式可以实现代码的分割,使代码有更大的弹性,更好地提高了复用性。策略 阅读全文
posted @ 2012-05-27 10:38 移动应用开发 阅读(281) 评论(0) 推荐(0) 编辑
摘要:有的时候,我们做的程序需要提供一些选项的功能,能让用户去定制化他们自己的使用风格。举个例子,你可能允许用户是否自动保存登录信息,允许用户自己设定某个页面的刷新时间等等。在Android平台上面,我们可以使用PreferenceActivity基类去显示给用户一个选项设置的界面。在Android3.0或更高的版本上,可以使用PreferenceFragment类去实现这个功能。下面将展示如何去创建和使用PreferenceFragment。1、创建一个工程:PreferenceFragmentExample。2、在res文件夹下面新建一个xml文件夹,在xml文件夹下面新建一个文件:prefer 阅读全文
posted @ 2012-05-26 19:12 移动应用开发 阅读(279) 评论(0) 推荐(0) 编辑
摘要:基于暗示功能的过滤一个暗示的功能是为了让应用程序正确运行所需的功能,但是,这个功能不在清单的<uses-feature>元素中声明。严格的说,应用程序应用始终声明它所使用和需要的所有功能,因此对于应用程序使用的,但却没有声明的功能,应该被认为是一个错误。但是,出于对用户和开发者的保护,Google Play会查看每个应用程序的暗示功能,并基于这些功能来过滤应用程序,就像是明确声明的功能所做的处理一样。应用程序可能需要一个功能,但却不声明,这是因为:1.应用程序是针对较旧的Android类库版本(Android1.5或更早)来编译的,并且<uses-feature>元素是 阅读全文
posted @ 2012-05-26 10:31 移动应用开发 阅读(217) 评论(0) 推荐(0) 编辑
摘要:Google Play会过滤出那些对用户可见的应用程序,因此用户只能看到和下载那些跟他们的设备兼容的应用程序。通过功能的兼容性是过滤应用程序的方法之一。Google Play通过把以下两项内容进行比较,来判断应用程序跟给定用户设备是否兼容:1.应用程序需要的功能---指应用程序在它自己的清单的<uses-feature>元素中声明的功能;2.在设备上有效的硬/软件功能---值设备用只读的系统属性所报告的它所支持的功能。为了确保功能的准确比较,Android包管理器提供了一个共享的功能常量集合,应用程序和设备都使用这些常量来声明各自所需要和支持的功能。可用的功能常量在本文下面的功能参 阅读全文
posted @ 2012-05-25 11:10 移动应用开发 阅读(187) 评论(0) 推荐(0) 编辑
摘要:分析Android Framework有什么好方法呢?回答这一问题之前,先回想一下我们是如何分析他人编写的代码的。在分析程序代码时,我们通常从程序的入口main()函数开始,一点一点地理清程序流程,把握程序的运行过程。同样,在分析结构庞大的Android Framework时,也要从Android平台启动过程入手。Android启动过程包含从Linux内核加载到Home应用程序启动的整个过程,依次分析这一过程,有利于我们系统地理解Android Framework运行的原理。下图简单地描述了Android的启动过程。1. Linux内核Android是基于Linux内核的系统平台。启动时,首先 阅读全文
posted @ 2012-05-25 08:33 移动应用开发 阅读(289) 评论(0) 推荐(0) 编辑
摘要:Google Play会根据应用程序所支持的纹理压缩格式来过滤应用程序,以确保应用程序只能安装在处理其纹理属性的的设备上。开发者能够使用基于GPU平台的纹理压缩格式,作为针对特定设备类型一种过滤方式。 阅读全文
posted @ 2012-05-24 21:02 移动应用开发 阅读(120) 评论(0) 推荐(0) 编辑
摘要:我们也可以创建另外一种碎片——DialogFragment。顾名思义,DialogFragment就是一个浮动在Activity上面的Fragment。当需要用户的反馈时,DialogFragment就会派上用场。与使用ListFragment类似,需要继承DialogFragment基类。下面将会展示如何使用DialogFragment。1、创建一个工程:DialogFragmentExample。2、在包路径下面新建一个类,Fragment1。public class Fragment1 extends DialogFragment { static Fragment1 newInst.. 阅读全文
posted @ 2012-05-24 20:39 移动应用开发 阅读(197) 评论(0) 推荐(0) 编辑
摘要:Google Play能够过滤要显示给用户的应用程序,因此用户只能看到和下载那些跟他们的设备兼容的应用程序。通过功能的兼容性来过滤应用程序是这个方法之一。Google Play通过检查建立每个应用程序清单中的功能需求来过滤应用程序,然后Google Play会基于对应用所需功能和设备所支持的功能的比较,来决定对每个用户所显示或隐藏的应用程序。通过指定应用程序所需要的功能,能够让Google Play把应用程序展现给那些满足应用的功能需求的设备,而不是展现给所有的用户。 阅读全文
posted @ 2012-05-24 13:39 移动应用开发 阅读(120) 评论(0) 推荐(0) 编辑
摘要:语法(SYNTAX):<uses-featureandroid:name="string" android:required=["true" | "false"] android:glEsVersion="integer"/>被包含于(CONTAINED IN):<manifest>说明(DESCRIPTION):这个元素用于声明一个单独的被应用程序使用的硬件或软件功能。<uses-feature>声明的目的是通知其他外部实体,该应用程序所依赖的硬件和软件功能。这个元素提供的re 阅读全文
posted @ 2012-05-24 08:13 移动应用开发 阅读(196) 评论(0) 推荐(0) 编辑
摘要:ListFramgent就是一个包含ListView的Fragment,它可以通过数据源(数组或游标)显示一系列的信息。ListFragment是非常有用处的,就像RSS,可能左边显示一个列表,右边显示被选中的列表所对应的内容。可以通过继承ListFragment创建一个ListFragment对象。下面将展示如何使用ListFragment。1、创建一个工程:ListFragmentExample。2、main.xml中的代码。<?xml version="1.0" encoding="utf-8"?> <LinearLayout x 阅读全文
posted @ 2012-05-23 21:20 移动应用开发 阅读(189) 评论(0) 推荐(0) 编辑
摘要:语法(SYNTAX):<uses-permissionandroid:name="string"/>被包含于(CONTAINED IN):<manifest>说明(DESCRIPTION):这个属性用于给应用程序授予正确的操作的所必须的权限。这些权限是在应用程序安装时被授予的,而不是在运行时授予的。有关更多的权限信息,请看《AndroidManifest.xml文件详解(三)》文档中“权限”介绍(http://blog.csdn.net/fireofstar/article/details/7543067)和《Android的安全性和权限》(http 阅读全文
posted @ 2012-05-23 08:22 移动应用开发 阅读(244) 评论(0) 推荐(0) 编辑
摘要:ffmpeg-0.8.11-vc-sdk,是使用ffmpeg 转换vc项目工具生成VC工程编译的 release 版本的sdk。因为编译器的问题导致sse开启的时候会导致程序崩溃,所以屏蔽了sse优化.其他的优化还是有了,config.h里面看到我屏蔽了其他的是因为为了发布sdk方便,所以屏蔽的。此sdk不依赖任何其他得dll,只需要把lib下的zlib,sdl,这两个库的dll加到运行目录中就可以发布,不需要其他任何的mingw,cygwin这样的dll文件。由于使用vc编译,所以在其他电脑上安装可能需要vs2008的运行环境。下载地址:http://download.csdn.net/de 阅读全文
posted @ 2012-05-22 18:58 移动应用开发 阅读(241) 评论(0) 推荐(0) 编辑
摘要:相信大家在移植ffmpeg代码到vc中都会遇到很多汇编指令,是VC不支持的。那是因为AT&T汇编和intel汇编格式不兼容引起的。今天给大家介绍一下libavutil\x86\internal.h 中emms_c函数的移植吧。函数原型:static av_always_inline void emms_c(void) { if(av_get_cpu_flags() & AV_CPU_FLAG_MMX) __asm__ volatile ("emms" ::: "memory"); }因为VC asm提供了emms,直接调用就可以了。因此修 阅读全文
posted @ 2012-05-22 18:53 移动应用开发 阅读(742) 评论(0) 推荐(0) 编辑
摘要:语法(SYNTAX):<uses-libraryandroid:name="string" android:required=["true" | "false"] />被包含于(CONTAINED IN):<application>说明(DESCRIPTION):这个元素用于指定该应用程序必须链接的共享类库。这个元素告诉系统该应用程序包的类装载器中所包含的类库代码。Android的所有包(如andorid.app,android.content,android.view和android.widget等)都在应用 阅读全文
posted @ 2012-05-22 14:04 移动应用开发 阅读(569) 评论(0) 推荐(1) 编辑
摘要:语法(SYNTAX):<uses-configurationandroid:reqFiveWayNav=["true" | "false"] android:reqHardKeyboard=["true" | "false"] android:reqKeyboardType=["undefined" | "nokeys" |"qwerty" |"twelvekey"] android:reqNavigation=["un 阅读全文
posted @ 2012-05-22 08:20 移动应用开发 阅读(264) 评论(0) 推荐(0) 编辑
摘要:语法(SYNTAX):<supports-screensandroid:resizeable=["true"|"false"] android:smallScreens=["true" | "false"] android:normalScreens=["true" | "false"] android:largeScreens=["true" | "false"] android:xlargeScreens=["tru 阅读全文
posted @ 2012-05-21 20:28 移动应用开发 阅读(181) 评论(0) 推荐(0) 编辑
摘要:很少人关注这个问题,我不多说,你没事看下,会有些特殊变化:下表列出了 Google Play 支持的设备。此列表是按制造商名称的首字母排序的。您也可以在此页面中查找自己的设备(PC:Ctrl + F,苹果机:Command + F)。如果您在使用 Google Play 网站或 Google Play 商店应用时遇到问题,请确保您的设备包含在下表中。如果不在,我们建议您与设备制造商联系以获取更多支持。请注意:列出的部分设备采用了官方型号。要查看设备型号,请在您的设备上依次转到设置>关于手机>型号。此列表的最后更新时间为2012 年 5 月 8 日。A| B |C|D|E|F|G|H 阅读全文
posted @ 2012-05-21 10:59 移动应用开发 阅读(1584) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.blogjava.net/persister/archive/2009/05/05/268974.html在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。 但有时候情况并不这么简单,你可能会遇到类似鸡肋一样的物品,食之无味,弃之可惜。这种物品现在已经无用了,保留它会占空间,但是立刻扔掉它也不划算,因 为也许 阅读全文
posted @ 2012-05-18 11:26 移动应用开发 阅读(174) 评论(0) 推荐(0) 编辑
摘要:对下面的字母我表示沉默,只是每次更新作为参考,仅提供自己独立参考,他人如有疑问请保持自己意见 :Fetching https://dl-ssl.google.com/android/repository/addons_list-1.xmlValidate XMLParse XMLFetched Add-ons List successfullyFetching URL: https://dl-ssl.google.com/android/repository/repository-6.xmlValidate XML: https://dl-ssl.google.com/android/repo 阅读全文
posted @ 2012-05-17 19:56 移动应用开发 阅读(1000) 评论(0) 推荐(0) 编辑
摘要:Android的GUI层并不复杂。它的复杂度类似于WGUI这类基于布局和对话框的GUI,与MFC、QT等大型框架没有可比性,甚至飞漫魏永明的MiniGUI都比它复杂许多。您也许会问,这样简单的GUI如何实现浏览器呢?原因很简单,浏览器有自己一套GUI。Android浏览器(WebKit)的GUI和Android的GUI实用同一套GDI——Skia,但GUI层是完全不同的设计,分别自成体系。Windown类,位于代码树frameworks\base\core\java\android\view\Windowjava.java文件。连同注释,这个文件总共一千多行,它概括了Android窗口的基本属 阅读全文
posted @ 2012-05-17 11:07 移动应用开发 阅读(1845) 评论(0) 推荐(0) 编辑
摘要:转自:http://orgcent.com/android-custom-view-draw-mechanism/Android系统中要自定义view,首先需要了解Android的view加载机制。主要有三个方法:1、onMeasure() //计算出view自身大小 2、onLayout() //仅在ViewGroup中,用来为子view指定位置(left,top) 3、onDraw() //view绘制内容 那么系统能让我们在onDraw()能够绘制些什么呢,查看View.draw()源码发现:点击查看源码下面根据源码中的相关说明,进一步分析控件的绘制操作及顺序:... 阅读全文
posted @ 2012-05-17 10:41 移动应用开发 阅读(1287) 评论(0) 推荐(0) 编辑
摘要:转自:http://hi.baidu.com/xiaofanqing/blog/item/9c4ef9116e5889dca6ef3f02.html上篇讲解了3个对象之间的关系和创建的时机。这篇讲解窗口是如何被绘制出来的。首先,我们看一个概念。就是View的draw方法的doc:Manually render this view (and all of its children) to the given Canvas.意思是说把View绘制在画布上。个人觉得这个概念很重要,View和Canvas 的关系,按常规的思维,肯定认为View聚合了Canvas对象,然后在View的onDraw 方法 阅读全文
posted @ 2012-05-17 09:29 移动应用开发 阅读(3473) 评论(0) 推荐(0) 编辑
摘要:转自:http://hi.baidu.com/xiaofanqing/blog/item/8261ac114ab14f64cb80c435.html我想大多数人,对于这3个东西的概念能区分,但是具体区别在哪却很难说出来。我这里根据我个人的理解来讲讲我个人对这3个概念的理解。当然这里设计到通用的事件窗口模型等通用GUI设计,我这里就不打算讲了,纯粹从概念上来进行区分。Activity是Android应用程序的载体,允许用户在其上创建一个用户界面,并提供用户处理事件的API,如onKeyEvent,onTouchEvent等。 并维护应用程序的生命周期(由于android应用程序的运行环境和其他操 阅读全文
posted @ 2012-05-17 09:28 移动应用开发 阅读(620) 评论(0) 推荐(0) 编辑
摘要:我们在苹果开发中,总会看到XCode,Interface Builder,Object-c这如此入耳入随的单词,但往往多数人在认为XCODE看着简单,InterfaceBuilder好似操作,而Object-c却望而生畏,如果作为我们只想需要初学才见的话,理解了它的语法,或者你已经懂了相关如,JAVA,或者C#,或者C,C++等语言的开发后,你会觉得任何一门语言,熟悉它的语法那是必须的,了解了它,你也就掌握了此语言60%的,好了,OK,希望这篇文章并不会让你感到看而疲惫一、我们怎么去理解Xcode、OBJECT-C、COCOA这是一个很简单的问题,但是也是一个很让人能够真正去理解的问题,多数人 阅读全文
posted @ 2012-05-15 20:59 移动应用开发 阅读(252) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://tie.youdao.com/st_3979529905881611380对于真机调试,首先要在苹果网站上注册APP ID,以及购买iPhone Develop Program(iDP) 开发者授权,99美元。然后要创建证书请求CSR,创建步骤如下:设置OCSP和CRL为关闭状态。Mac OS 中,打开应用程序,找到钥匙串访问(Keychain Access)工具打开主菜单-证书助理(Certificate Assistant)-从证书代理请求证书(Request a Certificate From a Certificate Authority)输入iDP注册时的e 阅读全文
posted @ 2012-05-15 14:27 移动应用开发 阅读(177) 评论(0) 推荐(0) 编辑
摘要:默认安装在/data/app下。系统app在/system/app下。可以将安装的apk移动到sdcard中,但需要应用程序支持。apk的安装不像windows需要将exe文件解压出来,直接将apk放在app目录下即可。 阅读全文
posted @ 2012-05-14 14:10 移动应用开发 阅读(142) 评论(0) 推荐(0) 编辑
摘要:--ansi数学运算function charMathOperation(str) function chartoint(chstr) chstr=string.sub(chstr,2,2); return tostring(string.byte(chstr)); end str=string.gsub(str,"%b''",chartoint); str="return "..str; return loadstring(str)(); end print(charMathOperation("'a'- 阅读全文
posted @ 2012-05-13 14:07 移动应用开发 阅读(438) 评论(0) 推荐(0) 编辑
摘要:我们总是在摸索着网站布局的效果展示,总是花费不少心思在考虑用户体验的极致所在,在这里我在一个国外的网站看到以下网站布局方式,实为好赞,所以贴下来分享,并从中我们可以去为移动终端这块做最新的参考与演化方式。。。。。Ld-siGn.de – Version 6Depthskins Design StudioCryingwolves FUTURE DESIGNCreative FlubyConcept – Web LayoutClassic layout.. v3byFinestateBook Store.byMy WorldDeltaOwaikeO.comYAPP PortfolioYorkWon 阅读全文
posted @ 2012-05-13 10:48 移动应用开发 阅读(392) 评论(0) 推荐(0) 编辑
摘要:应一个客户的要求,编写了一个无缝连续播放器。其实也就是视频切换时间可以忽略。 阅读全文
posted @ 2012-05-12 01:02 移动应用开发 阅读(309) 评论(0) 推荐(0) 编辑
摘要:移植代码需要的朋友可以联系购买。也可以购买工具,或者购买工具的代码。 阅读全文
posted @ 2012-05-12 01:00 移动应用开发 阅读(97) 评论(0) 推荐(0) 编辑
摘要:原文网址:http://www.kandroid.org/online-pdk/guide/build_new_device.html配置一个新产品详细描述以下步骤描述如何为一个新的移动设备配置makefiles以让产品能够运行Android系统。1. 在vendor/目录下创建一个公司目录mkdir vendor/<company_name>2. 在步骤1中你创建的公司目录下创建一个products目录mkdir vendor/<company_name>/products/3. 创建一个特定产品的makefile,叫做vendor/<company_name& 阅读全文
posted @ 2012-05-11 11:57 移动应用开发 阅读(1496) 评论(0) 推荐(0) 编辑
摘要:移植就剩下最后一个文件修改,不得不终止。继续用0.8.11重新移植。 阅读全文
posted @ 2012-05-10 23:46 移动应用开发 阅读(156) 评论(0) 推荐(0) 编辑
摘要:为手机、平板设备等提供统一的UI框架Android 4.0带来了统一的UI,允许开发人员为手机及平板设备创建更为优雅的创新型应用程序。它包含了全部为我们所熟知的界面元素及API——例如片段、内容加载器、动作栏、丰富多样的通知手段、可调节的主屏幕尺寸等等——此外还加入了很多新元素及API。对于开发人员而言,Android 4.0中的统一化UI框架意味着全新的UI工具、具备延续性的设计方式、简单的代码与资源以及流畅的Android全机型开发体验。沟通与共享将沟通与共享功能扩展到设备上的每一款应用程序当中。应用程序能够将用户的任何活动或社交网络与自身的联系人、个人资料数据以及日程安排整合起来。◆社交 阅读全文
posted @ 2012-05-09 11:11 移动应用开发 阅读(176) 评论(0) 推荐(0) 编辑
摘要:编译一个C程序需要经过预处理、编译、汇编和链接几个步骤,预处理是在编译之前所做的工作,预处理其实就是对源文件做一些编辑工作,为编译做好准备。1. 条件编译#ifconstant-expression#endif或者#ifconstant-expression#elifconstant-expression#else#endif测试一个符号是否被定义#if define(symbol)#ifdef symbol或#if !define(symbol)#ifndef symbol2. 文件包含文件包含使用include指令,它的本质是将包含的文件插入到include处。3. 宏定义define指令 阅读全文
posted @ 2012-05-08 23:58 移动应用开发 阅读(258) 评论(0) 推荐(0) 编辑
摘要:相信大家在移植ffmpeg代码到vc中都会遇到很多汇编指令,是VC不支持的。那是因为AT&T汇编和intel汇编格式不兼容引起的。今天给大家介绍一下libavutil\x86\timer.h 中read_time函数的移植吧。函数原型:static inline uint64_t read_time(void) { uint32_t a, d; __asm__ volatile("rdtsc" : "=a" (a), "=d" (d)); return ((uint64_t)d << 32) + a; }因为int 阅读全文
posted @ 2012-05-07 20:05 移动应用开发 阅读(201) 评论(0) 推荐(0) 编辑
摘要:一、概要 工厂方法(FactoryMethod)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。二、生活中的例子 例如移动电信运营商,不同的话费套餐形式,如动感地带,神州行,全球通等。我们可以把抽象工厂(套餐工厂)做成一个接口,这个接口只有一个方法,就是创建抽象产品(计费类)的工厂方法。然后所有的要生产具体类(动感地带,神州行等)的工厂去实现这个接口,由具体的套餐工厂去创建具体的套餐类。于是我们再增加新的套餐的时候,就不需要更改原有的工厂类,只需要增加此功能的计费类和相应的工厂类就可以了。图示:三、实现思路 工厂方法模式是对简单工厂模式进行了抽象。有一个抽象的Fact 阅读全文
posted @ 2012-05-07 20:00 移动应用开发 阅读(208) 评论(0) 推荐(0) 编辑
摘要:一、结构体前面的数组它是同种类型数据的集合,那要是不同种类型的数据怎么办,就需要用到这里的结构体。结构体它的成员可以是基本数据类型,也可以是复合数据类型。1. 结构体类型的定义struct point { int x; int y;};注意结构体类型的定义要以';'结尾。定义了一个结构体类型就相当于新定义了一个数据类型,我们可以使用这个数据类型来定义变量,和基本数据类型一样没有什么区别,例如:struct point a, b, c;结构体类型要包括struct关键字和结构体的名字。我们也可以在定义结构体的时候就定义变量,例如:struct point { int x; int 阅读全文
posted @ 2012-05-06 21:15 移动应用开发 阅读(228) 评论(0) 推荐(0) 编辑
摘要:前面我们看了如何去使用数组,在这里我们要关心更深层次的问题,它和更前面的指针是何种关系。1. 一维数组和指针前面我们操作数组都是通过数组名加下标的方式,那么这个数组名到底代表什么含义?其实数组名它是一个指针常量,它是一个地址,这个地址是数组的首地址,也就是数组第一个元素的地址。例如:int a[10];你可以去看一下,a, &a, &a[0]它都是同一个值,都是数组的首地址。那么这个指针常量它的类型的是什么呢,如果数组元素的类型是int类型的,那么这个指针常量的类型就是int*,像这里就是int*类型。还有要注意的是这个指针是一个常量,不能修改这个值,但是有两种情况下数组名不被 阅读全文
posted @ 2012-05-06 00:28 移动应用开发 阅读(194) 评论(0) 推荐(0) 编辑
摘要:大多数人认为,接口的意义在于顶替多重继承。众所周知Java没有c++那样多重继承的机制,但是却能够实作多个接口。其实这样做是很牵强的,接口和继承是完 全不同的东西,接口没有能力代替多重继承,也没有这个义务。接口的作用,一言以蔽之,就是标志类的类别(typeofclass)。把不同类型的类归于不同的接口,可以更好的管理他们。OO的精髓,我以为,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计 模式都只针对具备了抽象能力的语言(比如c++、java、c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。(cowboy的名言是 “抽象就是抽去像的部分”,看似调侃,实乃至理)。 阅读全文
posted @ 2012-05-05 15:15 移动应用开发 阅读(282) 评论(0) 推荐(0) 编辑
摘要:一. 面向接口编程 在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不 那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统 设计的主要工作内容。面向接口编程我想就是指按照这种思想来编程吧!实际上,在日常工作中,你已经按照接口编程了,只不过如果你没有这方面的意识,那么你 只是在被动的实现这一思想;表现在频繁的抱怨别人改的代码影响了你(接口没有设计到),表现在某个模块的改动引起其他模块的大规模调整(模块接口没有很好 的设 阅读全文
posted @ 2012-05-05 15:00 移动应用开发 阅读(204) 评论(0) 推荐(0) 编辑
摘要:mmsplayer for wince demo,应大家要求,晚上抽空编译了一个wince版本的demo,明天测试一下,然后发布上来。wince,wm 地址:http://download.csdn.net/detail/weinyzhou/4278833windows 地址:http://download.csdn.net/detail/weinyzhou/4278838 阅读全文
posted @ 2012-05-05 00:10 移动应用开发 阅读(144) 评论(0) 推荐(0) 编辑
摘要:ffmpeg 转换VC工具 V1.1.1已经完成1.支持大部分已知需要转换的结构体变量转换(支持含有宏定义)2.对于未知结构体变量,只需加入table中亦可转换.3.可支持5.1或5.2解析解析运行,使用纯lua脚本编写,未使用任何扩展库。4.可跨平台(这是与lua有关,只要有lua解析器即可运行)转换成功后libavcodec/4xm.c下的文件版权所有,未经允许不得擅自转载发布于:http://blog.csdn.net/weinyZhou 阅读全文
posted @ 2012-05-04 18:42 移动应用开发 阅读(144) 评论(0) 推荐(0) 编辑
摘要:数组是同种类型元素的集合。一、 一维数组1. 一维数组定义int a[10];这样我们便定义了一个数组a,它分配10个int类型空间。2. 数组的初始化我们可以在定义一个数组的同时对它进行初始化操作,例如:int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};甚至我们可以只对数组的部分元素进行初始化操作,例如:int a[10] = {1, 2, 3, 4, 5};这里我们只对数组的前5个元素做了初始化操作,剩下其它元素的值是未知的。如果我们对数组的所有元素都进行了初始化操作,那么我们甚至可以省略数组长度不写,编译器可以根据初始化数组元素的个数自动计算出数组的 阅读全文
posted @ 2012-05-03 23:22 移动应用开发 阅读(250) 评论(0) 推荐(0) 编辑
摘要:local text="AVCodec ff_jpeg2000_decoder = {" .." .name = \"j2k\",\n" .." .type = AVMEDIA_TYPE_VIDEO,\n" .." .id = CODEC_ID_JPEG2000,\n" .." .priv_data_size = sizeof(J2kDecoderContext),\n" .." .init = j2kdec_init,\n" .." .clos 阅读全文
posted @ 2012-05-03 22:45 移动应用开发 阅读(301) 评论(0) 推荐(0) 编辑
摘要:之前下的ANDROID4.0.1很顺利下来下来,有很多人问,后来才知道有很多人问关于报以下错误的上面是链接GOOGLE源码服务器超时,也就是说不能访问到GOOGLE源码服务器,这个问题,没想到在我重新装的机子上不小心发现了,既然发现来就出来解决下吧,刚开始,一开始,我们肯定是先看官方文档,看看情况:Using authenticationBy default, access to the Android source code is anonymous. To protect the servers against excessive usage, each IP address is ass 阅读全文
posted @ 2012-05-03 00:32 移动应用开发 阅读(540) 评论(0) 推荐(0) 编辑
摘要:在谈到指针时,不得不说计算机内存和地址的概念。计算机内存以字节为单位由很多个存储单元组成,每一个存储单元都有一个地址,要访问一个存储单元时,必须要指定这个存储单元的地址。例如:一个1K大小的内存,它的地址范围是从0到1023。那指针又是什么呢?其实指针和普通变量没有什么区别,在32位计算机中,它存储的是一个32位整型数据,但是它和普通变量不同的是,它存放的数据被当作计算机内存的一个存储单元地址来使用。既然它要存储一个32位整型数据,所以一个指针变量的内存空间就是4字节大小,请记住,所有的指针变量都是4字节大小,因为它要存储一个32位地址。1. 一级指针int a = 4;int* p = &a 阅读全文
posted @ 2012-05-01 23:22 移动应用开发 阅读(331) 评论(0) 推荐(0) 编辑
摘要:我们在编写程序的时候,总不能将所有的程序放在一个源文件中,这样也不便于团队开发和维护。这就需要将程序有序的组织在不同的文件中,头文件中只是程序的接口部分,而在源文件中负责具体实现,如果其他源文件中有需要调用该源文件中的某个函数,只需要包含头文件即可。以欧几里德算法计算两个数的最大公约数为例:gcd函数的实现在euclid.c中/* The gcd() function */int gcd(int a, int b){ while (b) { int temp = b; b = a % b; a = temp; } return a;}对于扩展欧几里德算法ext_eucl... 阅读全文
posted @ 2012-05-01 16:20 移动应用开发 阅读(250) 评论(0) 推荐(0) 编辑
摘要:工具已经上传了.需要的到:http://download.csdn.net/detail/weinyzhou/4268448这下载。需要将gcc,yasm,nasm等工具的目录加入到bin路径里面,否则编译会导致提示找不到文件,因为汇编文件都是用他们编译的。补充;main.lua是启动文件,但是需要修改里面两个路径。一个是脚本路径,一个是ffmpeg代码路径。修改成功后用lua解析器运行就可以了。 阅读全文
posted @ 2012-05-01 13:27 移动应用开发 阅读(123) 评论(0) 推荐(0) 编辑
摘要:函数用于将一个大任务分割成若干个较小任务,最常见的就是main函数,main函数是整个程序的入口。关于main函数的写法,C标准定义了两种写法:如果不带参数可以这样写int main(void) { /* ... */ }如果带参数一般这样写int main(int argc, char *argv[]) { /* ... */ }argc表示参数的个数,argv为参数列表。一个设计的恰当的函数应该屏蔽具体设计细节,只留出相应接口,这样也便于维护。1. 按值传递一个函数包括参数列表和一个返回值,但是在操作函数时请注意,函数参数都是按值传递的。void swap(int a, int b){ . 阅读全文
posted @ 2012-05-01 00:26 移动应用开发 阅读(243) 评论(0) 推荐(0) 编辑