当前位置:文档之家› Cocos2d-x跨Android、iOS平台开发入门

Cocos2d-x跨Android、iOS平台开发入门

Cocos2d-x跨Android、iOS平台开发入门
Cocos2d-x跨Android、iOS平台开发入门

1Cocos2d-x跨Android&iOS平台开发入门

Cocos2D是一个非常棒而且非常容易使用的游戏框架,但是,由于它是基于objc语言的,所以你只能使用它来开发ios和mac下面的游戏。假如你可以使用和cocos2d相似的api来开发android上面的游戏,那岂不是更爽?这样,你就可以毫不费劲地扩大你的游戏的市场份额(android的用户数量巨大啊!)

好吧,确实存在这么一个游戏框架,她就是cocos2d-x!cocos2d-x基于c++把cocos2d 的api重新移植了一遍,,除了一些语法细节上面的差异之外,你可以使用几乎一样的api来编写游戏。正是由于它是c++写的,所以可以跨多个平台,从ios到android、windows、再到linux、bada等!在这篇教程里面,你将学习到,如何使用cocos2d-x 和c++来编写一个能够同时在ios和android设备上面跑的“Hello World”程序。而且,过两天,我会再出一篇教程,向大家展示一个具体的游戏例子—一个跨平台的太空射击游戏!好了,带上你的iPhone和Android设备,让我们开始吧!Hello, Cocos2D-X for iOS!在继续之前,确保你先下载最新版本的cocos2d-x。

随便在你的硬盘的某个位置上面解压就可以了。注意,这个解压出来的文件夹的完整路径名,我们之后会用一个统一的别名 $COCOS2DX_HOME来指代。现在,你已经下载到源码了,让我们来安装项目模板吧!你可以先cd到$COCOS2DX_HOME这个目录(译者:指你刚刚解压缩代码的存放路径)下面去。在安装模板之前,先退出Xcode,然后打开一个终端,并输入下面的命令:cd$COCOS2DX_HOMEsudo./install-templates-xcode.sh-u

2注意: 在上面所示的代码中,你不能直接输入$COCOS2DX_HOME,而要输入实际的路径。如果你直接输入了$COCOS2DX_HOME是不会有任何反应的。当然,你可以参考我写的《如何在macos下面配置集成ios和android游戏教程》,里面有讲到环境变量的配置。大概方法就是打开~/.bash_profile文件,然后用export来定义环境变量就ok了。你可能会被要求输入管理员密码(加了-u应该是不需要输入密码的,不加-u就需要输入),之后的过程就非常简单了。在模板安装好之后,启动xcode,然后创建一个新的项目。这时,你可以在项目模板对话框中看到有cocos2d-x的模板了。不用担心,cocos2d-x 的模板与cocos2d的模板并不会有冲突,因此,你还是可以创建cocos2d的项目。让我们来试一下新模板吧!打开Xcode,然后创建一个新的工程,选择iOS\cocos2d-x\cocos2dx模板把工程命名为Cocos2DxFirstIosSample,然后保存。现在,编译并运行,你将会看到cocos2d-x的hello wolrd程序跑起来了。

非常简单,不是吗?这时,你可以看看xcode里面的文件,特别是Classes\HelloWorldScene.H和Classes\HelloWorldScene.cpp。如果你也熟悉cocos2d 的话,那么里面的代码看起来会觉得非常熟悉—几乎完全一样的cocos2d API,只是语言是c++而已!配置cocos2d-x的eclipse开发环境现在我们已经完成了Xcode4的hello world程序了,是时候看看如何使用eclipse来配置android的cocos2d-x开发环境了。这篇教程假设你有一个可以进行Android开发的标准开发环境。如果你还没有的话,可以参考这篇教程来配置,它里面提供了详细的过程,教你如何一步步配置好一个标准的eclipse android开发环境。但是,请等一下。一个标准的eclipse android 开发环境是专为java开发设计的,而cocos2d-x却是基于c++来做开发的!不用担心,eclipse已经有10年的历史了,它有许多插件可以支持其它语言的开发,这当然就包括c/C++语言的插件啦。先让我们来安装这个插件吧。打开eclipse,然后执行以下步骤:· 从Eclipse IDE的主工具栏上面,选择Help/Install New Software。

· 打开Work With复选框,并从中选择一个包含你的eclipse版本名称的项(如果是最新版的eclipse的话,就选择indigo)

· 在插件树里面找到Programming Languages (只有当你复选中“Group items by

category”时,你才可以看到插件树。)并打开它.

· 选择CDT插件,然后安装下列组件。(但是,请注意,你如果直接就点击C/C++ Development Tools的话,你是得不到下图所示的样子的,你还需要在“Mobile Development”里面去查找相关的项)点击next来完成向导,然后等待组件下载并安装。

现在,你可以使用eclipse来开发C/C++项目了!Setup the Android NDK (Native Development Toolkit)本来,android开发只能采用java,而且现在市场上面大部分的app也是采用java写的。然而,现在你还可以通过Native Development Toolkit (NDK),使用C/C++来编写android程序。这种编程方式是由Google在2009年6月份引入的,它允许一些组件采用C/C++来编写,然后通过标准的Java Native Interface (JNI)来调用。安装NDK的过程非常简单:

· 下载最新版本的NDK。 here (注意选择 MacOSX 平台).

· 解压tar.bz2 到任意目录.之后,我会使用$NDKROOT来指定这个解压缩后的目录。NDK给Android开发带来了全套的C/C++编译工具集,可以使用GCC4.4.3来编译来链接并且可以构建即时安装的APK包。有了这套编译工具集,我们就可以在eclipse里面集成一些外部的C/C++库(比如cocos2d-x)。这些库被编译成动态库,然后通过JNI(Java Native Interface)与Java Android体系程序进行交互。这些编译工具集可以采用下面两种方式使用 :

· 独立模式: 直接在你的makefile中使用 arm-linux-androideabi-g++. 这种方式会增加你的项目的复杂性和可维护性。我推荐你不要使用这种方式。

· 集成模式:使用$NDKROOT/ndk-build shell 工具,它是一种高度可定制的makefile,专门为NDK库所设计的。

解释JNI和NDK可能会花费大量时间,而且也超出了本教程的讨论范围。现在网络上有许多关于JNI的资源。这里还推荐一本书,它也讨论了JNI这个主题。如果你需要更多关于NDK的信息,这里推荐一本非常好的书,它里面涵盖了使用C/C++进行NDK开发,书名是:Android Native Development Kit Beginner’s Guide。这本书覆盖了NDK 编程的方方面面,可谓是“从入门到精通”,而且NDK本身也带有非常详细的文档,在$NDKROOT/docs路径下面。Hello, Cocos2D-X for Android!现在,让我们在Andriod 平台上面来开发一个“Hello,World”程序吧,就像我们之前在ios平台上的程序一样。我们需要通过命令行来完成工作,因为目前还没有在Eclipse IDE里面集成cocos2d-x 的模板。在$COCOS2DX_HOME目录下面包含一个shell脚本,叫做create-android-project.sh,我们可能通过它来创建android项目。但是,在运行脚本之前,我们需要在脚本文件的顶部做一些修改:#setenvironmentparamtersNDK_ROOT_LOCAL="/home/laschweinski/android/android-ndk-r5"ANDROID_SDK_ROOT_LOCAL="/home/laschweinski/android/android-sdk-linux_86" 修改上面这些行,把NDK_ROOT_LOCAL指向你安装Android NDK ($NDKROOT)的位置,同时把ANDROID_SDK_ROOT_LOCAL指向你安装Android SDK位置。(译者:这里其实可以不用修改,读者可以打开这个sh脚本去看看为什么。如果之前看过我的配置教程,里面有配置一个全局的NDK_ROOT和ANDROID_SDK_ROOT。这个脚本在判断有全局的环境变量存在的时候,会直接替代NDK_ROOT_LOCAL和ANDROID_SDK_ROOT_LOCAL。)

现在,可以运行create-android-project.sh脚本了,然后你会接收到一系列的提示输入。我们将一个个向您解释一下:

1.第一个提示要求你“Input package path”。这个包名会给后面的java代码使用。你可以使用你的域名反过来写,类似写ios的bundle ID。比如

com.yourdomain.samplecocos2dxandroid ,记住实际输入的时候要替换掉“com.yourdomain”。

2. 接下来,你会得到一系列可用的Android API和它们的id号。这个具体取决于你的机器上面安装的Andriod API的情况。

3. 最后,你需要提供项目的名称,在这里取名为samplecocos2dxandroid:

命令行的输出大致如下:bash-$./create-android-project.sh

4Inputpackagepath.Forexample:org.cocos2dx.example

5org.jymc.samplecocos2dxandroid

6...

7AvailableAndroidtargets:

8----------

9...

10----------

11id:9or"GoogleInc.:GoogleAPIs:15"

12Name:GoogleAPIs

13Type:Add-On

14Vendor:GoogleInc.

15Revision:1

16Description:Android+GoogleAPIs

17BasedonAndroid4.0.3(APIlevel15)

18...

19inputtargetid:

209

21inputyourprojectname:

22samplecocos2dxandroid

23Createdprojectdirectory:/Users/jymen/development/cocos2dx/samplecocos2dxandroid

24...

25Addedfile/Users/jymen/development/cocos2dx/samplecocos2dxandroid/AndroidManifest .xml

26Addedfile/Users/jymen/development/cocos2dx/samplecocos2dxandroid/build.xml

27Addedfile/Users/jymen/development/cocos2dx/samplecocos2dxandroid/proguard.cfg 28bash-$

29注意“Created project directory:”这一行是脚本文件最后输出来的,这个输出的路径也就是你的Andriod项目被创建好的路径。我这里指的是

/Users/jymen/development/cocos2dx/samplecocos2dxandroid,

注意: 不要把项目从一个地方移动到另一个地方。因为你如果随意移动,有些脚本文件可以跑不起来。构建工程这里有两个步骤来构建项目—-首先通过命令行脚本编译c++代码,然后通过ecipse来编译java代码。为了编译c++代码,我们需要切换到$PROJECT_HOME/android文件夹下面去,然后在终端里面输入下列命令:./build_native.sh 30你应该会看到下面类似的输出:Gdbserver:[arm-linux-androideabi-4.4.3]libs/armeabi/gdbserver

31Gdbsetup:libs/armeabi/gdb.setup

32Compile++thumb:cocos2dlibs/armeabi/libcocos2d.so

33Compile++thumb:cocosdenshionlibs/armeabi/libcocosdenshion.so

34Compile++thumb:game_logiclibs/armeabi/libgame_logic.so

35Compile++thumb:gamelibs/armeabi/libgame.so

36这里就是在编译cocos2d-x库和你的项目里面的c++文件。为了编译java代码,我们需要创建一个eclipse工程—这可比命令行要方便多了。:)打开Eclipse,然后他吃软饭File\New\Other,选择Android\Android Project,然后点击Next,在Project Name里面输入samplecocos2dxandroid ,然后选择 Create project from existing source,然后浏览到$PROJECT_HOME/android文件夹。

37点击Next,选择一个 Android version to target 点击Finish,好了,现在你有

一个工程了!在左边的树上右击项目,选择Run As\Android Application,然后AVD (Android Virtual Device)就会启动,然后就会跑出来Hello, Cocos2D-X项目了!

注意:如果程序没有启动的话,你需要按照提示去创建一个AVD来测试。更多的细节,请参考Getting Started with Android Development 这篇教程。恭喜你,你现在有一个“Hello,World”项目可以同时跑在ios和android上面了!在Eclipse里面定义一个结合java/c++的工程通过命令脚本来编译c++代码,完了之后用eclipse来编译java代码,这种来回切换的做法非常笨重。如果全部可以用eclipse来完成的话,那么生活会更简单一些。幸运的是,我们可以告诉eclipse,我们的android项目是一个集成java/c++的跨语言项目!为此,我们在左边的项目树上选择samplecocos2dxandroid,然后从菜单里面选择File\New\Other,然后从对话框里面选择C/C++\Convert to a C/C++ Project。

点击Next。在下一个屏幕里面,选中你的项目,然后选择c++单选按钮,然后为Project type指定Makefile project\Other Toolchain,:点击完成。这时eclipse会询问你是否打开C/C++视图,当对话框出现的时候,选择NO。接下来的步骤就是修改项目设置,指定如何运行我们的make命令。在左边的项目树上,右击samplecocos2dxandroid 工程,选择Properties,然后选择C/C++ build 取消“Use default build command”复选框,然后在build文本框中输入下面的命令:bash${workspace_loc:/samplecocos2dxandroid}/build_native.shNDK_DEBUG=1V=1

38点击Apply,然后点OK。回到eclipse,从主菜单中选择Project\Build All,这时你可以在eclipse的控制台输出中看到c++ make在运行。

我们仍然有一些警告需要解决。想知道我是什么意思吗,你打开jni/helloworld/main.cpp,这里你会看到一系列的警告,如下所示:这些警告之所

以会出现,是因为我们没有配置正确的c++包含路径。为了解决它,我们右击samplecocos2dxandroid工程,然后选择Properties\C/C++ General\Path and Symbols\GNU C++。选择Add…按钮来选择下面的目录,之后点击Apply和OK。$(NDKROOT)/platforms/android-9/arch-arm/usr/include$(COCOS2DX_HOME)/cocos2dx/i nclude

注意: 不用忘了使用实际的路径来替换掉$(NDKROOT) 和$(COCOS2DX_HOME)。

点击Apply,这时会提示你是否重建索引。直接点击yes继续就可以了。现在,你再看看main.cpp,你会看到大部分警告已经消失了。但是,AppDelegate.h文件还是找不到。这是因为AppDelegate.h是在$PROJECT_HOME\Classes文件夹下面。

这个文件夹对我们来说非常重要,因为它包含了我们工程里面的可移植的c++类,比如HelloWorldScene.cpp等。当我们创建eclipse项目的时候,我们必须选择$PROJECT_HOME\android文件夹,因为eclipse需要一个AndroidManifest.xml文件。但是,这样的话,我们的工程就不包括关键的“Classes”文件夹了,这也是为什么我们会得到这么多警告的原因。

让我们来修正它吧。右击samplecocos2dxandroid项目,选择Properties\C/C++ General\Paths and Symbols\Source location。点击Link Folder,然后复选中Link to a folder in the file system,接着浏览到$PROJECT_HOME文件夹,并指向Classes 目录,最后点Apply和OK。你现在可以在文件树里面看到Classes目录了,而且在main.cpp里面的#include “AppDelegate.h”警告也应该消失了。 Eclipse工程里面还会有许多警告,但是,这是因为eclipse对于解析c++头文件的能力并不强大。为了消除这些警告,我们又需要设置一下项目设置。(右键点工程,然后选择Properties),把Code Analysis部分的warnings关闭。然后点击Apply和OK,这时,你就得到一个工程可以在eclipse里面进行编辑了。What About the Java Code?这时你在eclipse 里面再找找看,你会在src和gen目录下面找到一些java代码,你肯定很好奇这些代码是干吗用的。 Andriod开发采用的主要语言是java,这个项目模板已经为我们创建了一些java框架代码,用来加载c++编写好的动态库。一般情况下,你是不需要修改这些java代码的,但是,还是让我们来看看,

src\com\xxx\samplecosos2dxandroid\samplecocos2dandroid.java这个类。这个类包含了主Android Activity类,当应用程序启动的时候会加载。它首先通过NDK来请求编译好的c++动态库。(如果采用的是最新版的coocs2dx的话,下面只会加载一个game 库)。由于类是从Cocos2dxActivity所派生,在后台cocos2d-x会把控制权移交给c++的AppDelegate的initInstance方法来处理,最后applicationDidFinishLAunching 方法也就被执行起来了。因此,再重申一遍,java代码只是一些包装代码,大部分情况下我们都不要去修改它,因为我们的游戏逻辑是由c++写的。连接andriod和ios 项目结构现在,我们有两个cocos2d-x的项目了,一个是ios下面的,一个是andriod 下面的。我们的目标是让两个工程共享同样的目录,这样就可以使用同样的c++文件了。我们两个项目里面,都有一个文件夹叫做“Classes”,它包含了我们的可移植的游戏代码。

如果你仔细看看eclipse和xcode里面的Classes目录,你会发现这些c++文件完全相等。因此,我们需要做的就是让两个项目指向同一个文件夹就ok了!为了实现这个目标,在xcode里面打开Cocos2DxFirstIosSample项目。选择Classes分组,然后点击Delete,选择“Move to Trash”;接下来,右键Project Navigator,选择“New Group”,然后重命名为Classes。点键Classes,点击Add Files。然后选择$PROJECT_HOME\Classes 目录,同时确保“Copy items into destination group’s folder”没有被选中!

然后clean并rebuild xcode项目,并运行一下,确保一切ok。恭喜,现在基础配置全部弄好了!你可以试着在eclipse里面修改,xcode这边运行,或者xcode里面修改,eclipse里面运行了。什么时候使用 Xcode, 什么时候使用Eclipse?现在,你有两个项目了,那么问题马上就出来了,我们到底什么时候该使用哪一个呢?使用cocos2d-x 通常的开发策略是,首先在ios上面通过xcode来测试,确认没问题后,再通过eclipse 来测试。只需要在心里记住下面几点就行:

1. 经常测试.开发完一个小功能之后,就应该在andriod上面测试看行不行。这样的话,就不至于遇到问题找不到了。

2. 在多个设备上面测试: 现在市场上面有大量的android设备,而且它们的差别很细微,所以,你要尽可能多地测试多种不同型号的设备。当然,你也可以先在andriod 上面测试,然后再在ios上面测试。但是这样肯定会降低你的生产率。因为xcode比eclipse反应速度更快,而ios模拟器比android的模拟器的启动速度也要快一些。调试技巧在ios上面调试cocos2d-x和cocos2d的方法差不多,这里也没什么多讲的。然而,对于Android,这里有几点需要注意下。当使用NDK来调试的时候,一个“服务端的”gdb和gdbcontext被ndk-build shell脚本塞到APk里面去了。这个远程的gdb 调试器可以与任何gdb兼容的客户端进行通信。 Eclipse里面最好的gdb agent就是NVidia debug manager plugin,但是安装这个插件不在本教程的讨论范围之内。注意: 如果你想安装NVidia Debug Manager plugin,你首先到这个页面下载完整的Tegra Android开发包,即便你可能现在并不需要它。然后,安装Tegra Developer,它会提示你安装哪些项,然后你可以选择NVidia Debug Manager plugin这个插件了。当你安装完之后,它并没有包插件安装到eclipse里面去,而是把zip文件放在你的硬盘的某个位置,你可以参考这个pdf文档来进行安装。我发现在一些物理设备(比如Samsumg Galaxy S),remote debugger老是启动不了,但是使用AVD就可以正常启动。为了启动一个debug会话,你可以选择你的项目,然后右击Debug As Android NDK application。请注意,只有你安装了NVidia debug manager plugin,你才会在右击的时候看到Android NDK Application这个选项。你可以在一行代码上面双击来设置一个断点。

当断点到达的时候,它将会停留在断点所在行,悲催的是,使用gdb来调试android有时候并不管用,所以,你可能需要添加一些额外的tracing系统。

你现在可以使用cocos2d-x来开发iphone和android下面的游戏了。

Android adb(调试桥)的应用及操作命令 有米分享

Android adb(调试桥)的应用及操作命令 试阅: ……Android日志系统有循环缓冲区,并不是所有的日志系统都有默认循环缓冲区。为了得到日志信息,你需要通过-b 选项来启动logcat 。如果要使用循环缓冲区,你需要查看剩余的循环缓冲期: ?radio —查看缓冲区的相关的信息. ?events —查看和事件相关的的缓冲区. ?main —查看主要的日志缓冲区 -b 选项使用方法: [adb] logcat [-b ] 下面的例子表示怎么查看日志缓冲区包含radio 和 telephony信息: adb logcat -b radio 查看stdout 和stderr 在默认状态下,Android系统有stdout 和 stderr (System.out 和System.err )输出到/dev/null ,在运行Dalvik VM的进程中,有一个系统可以备份日志文件。在这种情况下,系统会用stdout 和stderr 和优先级 I.来记录日志信息 通过这种方法指定输出的路径,停止运行的模拟器/设备,然后通过用 setprop 命令远程输入日志 $ adb shell stop $ adb shell setprop log.redirect-stdio true $ adb shell start 系统直到你关闭模拟器/设备前设置会一直保留,可以通过添加 /data/local.prop 可以使用模拟器/设备上的默认设置 Logcat命令列表 Option Description -b 加载一个可使用的日志缓冲区供查看,比如event 和radio . 默认值是main 。具体查看Viewing Alternative Log Buffers. -c 清楚屏幕上的日志.

一看就懂的Android APP开发入门教程

工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android开发入门文章,有一点开发基础的应该都能看懂。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择U SE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JAVA_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Andro id的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

在Eclipse上调试Android应用程序

在Eclipse上调试Android应用程序 以前一直用VC开发,VC开发工具调试程序非常简单,按F7源码编译通过后,按F5就开始调试了。为了开发Android程序,使用Eclipse开发环境,刚接触Eclipse不久,对Eclipse 环境不够熟悉,在这之前开发Android程序都是通过Trace定位问题的,后来得知Eclipse也可以进行单步调试,经过动手试验,发现调试过程类似VC开发环境,下面是调试步骤: 1. 首先启动Eclipse,启动Android模拟器 2. 打开DDMS界面,选择要调试的设备,并指定要调试的进程,例如: 3.设置好断点,打开调试界面,按F11开始调试,可以F6进行单步调试。 ******************************** DDMS 的全称是Dalvik Debug Monitor Service,是Android 开发环境中的Dalvik虚拟机调试监控服务。它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等。 在集成开发环境中,有DDMS控制台窗口。如,MyEclipse中,有个叫DDMS的Console。 1.如何启动DDMS 这个工具存放在SDK-tools路径下,启动方法: 1) 直接双击ddms.bat运行; 2) 在Eclipse调试程序的过程中启动DDMS,在Eclipse如下: Window-Open Perspective-DDMS,点击启动就可以了 DDMS对Emulator和外接测试机同等效用,如果系统检测到它们(VM)同时运行,那么DDMS 将会默认指向Emulator,以上两种启动后的操作有些不一样,建议分别尝试下; (WGY-Dalvik:虚拟机;Monitor:监听器)

Android Studio教程从入门到精通.doc

Android Studio教程从入门到精通 AS简介 经过2年时间的研发,Google终于正式发布了面向Android开发者的集成开发环境Android Studio 1.2(稳定版)。Android Studio是Google 开发的一款面向Android开发者的IDE,支持Windows、Mac、Linux 等操作系统,基于流行的Java语言集成开发环境IntelliJ搭建而成。该IDE在2013年5月的Google I/O开发者大会上首次露面,当时的测试版各种莫名其妙的Bug,但是14年12月8日发布的版本是稳定版。Android Studio 1.0推出后,Google官方将逐步放弃对原来主要的Eclipse ADT的支持,并为Eclipse用户提供了工程迁移的解决办法。不过相信作为Developer的你上手AS 1.0以后你再也不愿意使用原来苦逼的Eclipse+ADT了,你会被AS的各种强大所吸引。 下载安装 下载AS前先说下,AS安装包分为含SDK版本和不含SDK版本下载,如果你有SDK,那么完全可以下载不含SDK版本;不过下载了含SDK版本也没事,安装时选择自定义SDK也可以,安装后重新指定SDK路径也可以,总之看个人爱好喽。先吐槽下天朝的强大吧,不得不拜服天朝的墙。如果你有梯子请去Android Developer下载最新版的AS安装包,如果你没有梯子那也有个办法,就是去Android Studio中文社区官网下载你的平台需要的安装包。 下载下来以后安装的过程可以忽略了吧,能安装的都是程序猿吧,所以安装这点就不说了,注意已经正确安装配置了JDK。

Android的调试打印接口分析

Android的调试打印接口分析 Android输出Log可以通过使用Android.util中的Log类来实现。android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及Log.e() 。根据首字母对应VERBOSE、DEBUG、INFO、WARN、ERROR。例如,在执行下面的代码后,会输出Log到LogCat View 里: Log.v("tag", "message"); Java中原有的打印语句System.out.println()的打印也会被输出到LogCat,它的Tag标签是” System.out” 在Eclipse下会通过如下的窗口显示: 在机顶盒命令模式下,则需要执行logcat命令在串口输出打印(或者将打印输出到指定文件)。 1、使用android.util.log的优点 1)功能强大,使用方便 Logcat可以根据调试级别输出不同等级的信息(VERBOSE,DEBUG,INFO, WARN,ERROR),而且可以过滤输出指定tag的调试信息; 2)系统自动添加调试信息,定位问题快捷 程序异常退出、强制关闭、长时间无响应时,系统会自动生成log打印。包括系统基本信息(内存,CPU ,进程队列,虚拟内存,垃圾回收等)、时间信息和虚拟机信息(包括进程的,线程的跟踪信息)。 2、使用android.util.log的缺点 中间件其它模块的打印最后统一由rocme_porting_dprintf()实现,独独android的java输出使用了自己的底层实现(调用Linux的write( int fildes, const void* buf,size_t nbyte )),不够统一。 3、Android中Java打印在底层改由rocme_porting_dprintf()实现的优点 中间件打印最后统一由rocme_porting_dprintf()实现,这样只需修改porting就可以实现打印的开关、打印终端的控制(串口、控制台……)。 4、Android中Java打印改由rocme_porting_dprintf()实现的缺点 1)Android log原有的输出等级控制和输出过滤的功能将丧失,Android内部C和C++实现中用LOGV、LOGD、LOGI等分等级输出的打印将全部会输出,除非rocme_porting_dprintf()也实现分等级输出的功能; 2)Android在运行Java应用的时候,会将每个进程的标准输出sdtout等重定向到/dev/log/下的三个文件(main、radio、events)中进行缓存,执行logcat命令后再重定向到串口进行输出。若改用rocme_porting_dprintf(),则需要其实现将每个进程的标准输出sdtout重定向,

Android开发入门教程

第一篇:安装SDK 这里主要介绍如何安装Android的SDK开发包和配置开发环境。如果你还没有下载SDK,点击下面的链接开始。 Download the Android SDK 系统和软件配置要求 要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下: 支持的开发环境 Eclipse Eclipse 3.2,3.3(Europa) Android开发工具插件(可选) 其他的开发环境或者IDE JDK5.0或者JDK6.0(仅有JRE是不够的) 安装SDK 下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tools加入到你的路径中 1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/t ools的完整路径加入其中。如果没有找到设定PATH变量的行,你可以自己添加一行: export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径> 2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,你可以创建一个.bash_profile文件。 3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。 通过将$SDK/tools加入系统路径,在运行adb和其它一些命令行工具时就不需要键入完全路径名了。需要注意到是,当你升级了SDK后,如果安装路径有变动的话,不要忘记了更新你的PATH变量的设置,将其指向变动后的路径。 安装Eclipse插件(ADT) 如果你选择Eclipse作为Android的开发环境,可以安装一个专门为Android定制的插件:Android Deve lopment Tools(ADT),ADT插件集成

Android基础教程

Android基础教程 开始之前 本教程介绍如何在Eclipse 环境中进行Android 应用程序开发,包括两个示例应用程序。第一个示例是一个基本的应用程序,涉及构建和调试的所有阶段。第二个应用程序示例涉及比较复杂的Android 特性,包括联系人搜索和Google Maps 地址查找。要想从本教程获得最大收益,具备移动开发经验会有帮助,但不是必需的。开发Android 应用程序需要Java? 编程技能,但是对于本教程不是必需的。 关于本教程 我们为什么要关注Android?有两个原因使Android 成为重要的平台。首先,Google 引入了Android,它在很短时间内就获得了市场的关注。Google 正在进军移动市场。它在这个市场上采取的第一个行动就是发布Android 和Open Handset Alliance,这是一个令人印象深刻的起点。第二,Android 不仅仅是另一种包含电话、菜单和触摸屏功能的移动平台。您将在本教程中了解到,Android 提供了一种不同的应用程序开发方法。由于可以对请求的操作和代码进行运行时绑定,Android 的体系结构支持高度可定制的软件环境。无论是考虑市场因素还是Android 的技术方面,它都是一个值得研究的平台。 本教程分为以下几节: Android 基础知识和必需的工具

?Android Software Developer Kit ?构建和调试SaySomething Android 应用程序 ?创建内容提供器和Google Maps 应用程序 系统需求 本教程需要结合使用几种技术。 Eclipse 平台 Eclipse 是一个运行插件的平台。您应该安装Eclipse Classic 的最新版本(本教程使用V3.3.1)。 Android Developer Tools 按照安装Android SDK中的说明安装Android Developer Tools(Eclipse 插件)。 源代码 本教程中的源代码片段包括: ?AndroidManifest.xml(片段)—这个文件是Android 应用程序的应用程序部署描述符。 ?IntentReceiver —演示IntentReceiver的实 现,这个类处理AndroidManifest.xml 文件中 IntentFilter标记所公布的intent。 ?SaySomething.java —实现一个Android 活动,这 是本教程的示例应用程序的主要入口点。

Android常用调试工具

Android问题分析工具 Android应用开发过程中,会遇到各种各样的问题。好的分析方法和分析工具,能起到事半功倍的效果。下面是几个常用的小工具,希望能对大家有所帮助。 1. 查看当前堆栈 1) 功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系 2) 方法: new Exception(“print trace”).printStackTrace(); 2. MethodTracing 1) 功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函 数调用关系等 2) 方法: a) 在程序代码中加入追踪开关 1. import Android.os.Debug; 2. …… 3. Android.os.Debug.startMethodTracing(“/data/tmp/test”); // 先 建/data/tmp目录 4. …… // 被追踪的程序段 5. Android.os.Debug.stopMethodTracing(); b) 编译,运行后,设备端生成/data/tmp/test.trace文件 c) 把trace文件复制到PC端 1. $ adb pull /data/tmp/test.trace ./

d) 使用Android自带工具分析trace文件 1. $ $Android_SRC/out/host/linux-x86/bin/traceview test.trace 此时可看到各个函数被调用的次数CPU占用率等信息 e) 使用Android自带工具分析生成调用关系类图 1. $ apt-get install graphviz # 安装图片相关软件 2. $Android_SRC/out/host/linux-x86/bin/dmtracedump -g test.png test.trace 此时目录下生成类图test.png 3) 注意 trace文件生成与libdvm模块DEBUG版本相冲突,所以此方法只适用于对非DEBUG 版 本模拟器的调试,否则在分析trace文件时会报错 3. HProf (Heap Profile) 1) 功能: 用于java层面的内存分析,显示详细的内存占用信息,指出可疑的内存泄漏对象 2) 方法: a) 在代码中加入dump动作 1. import Android.os.Debug; 2. import java.io.IOException; 3. …… 4. try { 5. Android.os.Debug.dumpHprofData(“/data/tmp/input.hprof”); // 先 建/data/tmp目录 6. } catch (IOException ioe) { 7. } b) 把hprof文件复制到PC端 1. $ adb pull /data/tmp/input.hprof ./

Android移动应用开发基础教程(微课版)-教学大纲

《Android移动应用开发基础教程(微课版)》教学大纲 学时:62 代码: 适用专业: 制定: 审核: 批准: 一、课程的地位、性质和任务 Android移动应用开发基础是普通高等学校计算机科学与技术专业的一门重要的专业基础课。通过本课程的学习,使学生能够在已有的计算机基础知识基础上,对Android移动应用开发有一个系统的、全面的了解、为掌握移动应用开发打下良好的基础;在系统理解和掌握Android移动应用开发基本原理的基础上,了解和掌握移动应用开发的基本原理和方法,具有设计和开发Android移动应用APP的基本能力。 Android移动应用开发是一门实践性非常强的学科,它要求学生在理解和掌握Android移动应用开发语言语法的基础上,充分利用实验课程,在计算机上动手完成程序的编写和调试。 二、课程教学基本要求 1.课程教学以Android移动应用开发方法为主,在教学过程中让学生掌握Android移动应用开发的基本原理和方法。 2.要求在教学过程中合理安排理论课时和实验课时,让学生有充分的使用在计算机上练习理论课程中学到的Android移动应用开发技巧和方法。 三、课程的内容 第1章 Android开发起步 让学生了解Android平台特点、体系架构和版本,掌握如何搭建Android开发环境,熟悉如何创建Android项目和Android编程的日志工具 第2章 Android核心组件:活动 让学生了解Android核心组件之一的活动是什么、活动生命周期,掌握活动基本操作、在活动中使用Intent、在活动之间传递数据、活动的启动模式。 第3章 UI设计 让学生熟练掌握线性布局、相对布局、通用UI组件、消息通知和菜单。 第4章广播机制 让学生了解广播机制,并熟练掌握如何使用广播接收器。 第5章数据存储 让学生熟练掌握Android文件存储、共享存储和SQLite数据库存储。 第6章多媒体 让学生熟练掌握播放多媒体文件、记录声音、使用摄像头和相册。 第7章网络和数据解析

android调试桥(adb)常用命令

Android 调试桥(adb)是多种用途的工具,该工具可以帮助你管理设备或模拟器的状态。 可以通过下列几种方法加入adb: ?在设备上运行shell命令 ?通过端口转发来管理模拟器或设备 ?从模拟器或设备上拷贝来或拷贝走文件 下面对adb进行了介绍并描述了常见的使用. Contents 概要 发出adb命令 查询模拟器/设备实例 给特定的模拟器/设备实例发送命令 安装软件 转发端口 从模拟器/设备中拷入或拷出文件 Adb命令列表 启动shell命令 通过远程shell端运行sqllite3连接数据库 UI/软件试验程序Monkey 其它的shell命令 启用logcat日志 使用logcat命令 过滤日志输出 控制日志输出格式 查看可用日志缓冲区 查看stdout 和stderr Logcat命令列表 停止adb服务 概要 Android 调试系统是一个面对客户服务系统,包括三个组成部分: ?一个在你用于开发程序的电脑上运行的客户端。你可 以通过shell端使用adb命令启动客户端。其他 Android工具比如说ADT插件和DDMS同样可以产 生adb客户端. ?在你用于发的机器上作为后台进程运行的服务器。该 服务器负责管理客户端与运行于模拟器或设备上的 adb守护程序(daemon)之间的通信。.

?一个以后台进程的形式运行于模拟器或设备上的守 护程序(daemon)。. 当你启动一个adb客户端,客户端首先确认是否已有一个adb服务进程在运行。如果没有,则启动服务进程。当服务器运行,adb服务器就会绑定本地的TCP端口5037并监听adb客户端发来的命令,—所有的adb客户端都是用端口5037与adb服务器对话的. 接着服务器将所有运行中的模拟器或设备实例建立连接。它通过扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备。一旦服务器找到了adb守护程序,它将建立一个到该端口的连接。请注意任何模拟器或设备实例会取得两个连续的端口——一个偶数端口用来相应控制台的连接,和一个奇数端口用来响应adb连接。比如说: 模拟器1,控制台:端口5554 模拟器1,Adb端口5555 控制台:端口5556 Adb端口5557... 如上所示,模拟器实例通过5555端口连接adb,就如同使用5554端口连接控制台一样. 一旦服务器与所有模拟器实例建立连接,就可以使用adb命令控制和访问该实例。因为服务器管理模拟器/设备实例的连接,和控制处理从来自多个adb客户端来的命令,你可以通过任何客户端(或脚本)来控制任何模拟器或设备实例. 以下的部分描述通过命令使用adb和管理模拟器/设备的状态。要注意的是如果你用,装有ADT 插件的Eclipse开发Android程序,你就不需要通过命令行使用adb。ADT插件已经透明的把adb集成到Eclipse中了,当然,如果必要的话你也可以仍然直接使用adb,比如说调试. 发出adb命令 发出Android命令:你可以在你的开发机上的命令行或脚本上发布Android命令,使用方法: adb [-d|-e|-s ] 当你发出一个命令,系统启用Android客户端。客户端并不与模拟器实例相关,所以如果双服务器/设备是运行中的,你需要用-d选项去为应被控制的命令确定目标实例。关于使用这个选项的更多信息,可以查看模拟器/设备实例术语控制命令 . 查询模拟器/设备实例 在发布adb命令之前,有必要知道什么样的模拟器/设备实例与adb服务器是相连的。可以通过使用devices命令来得到一系列相关联的模拟器/设备: adb devices ?作为回应,adb为每个实例都制定了相应的状态信息: ??序列号——由adb创建的一个字符串,这个字符串 通过自己的控制端口-

2016尚学堂Android开发入门教程

android开发者资料大全 第一篇:安装SDK 这里主要介绍如何安装Android的SDK开发包和配置开发环境。如果你还没有下载SDK,点击下面的链接开始。 Download the Android SDK 系统和软件配置要求 要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下: 支持的开发环境 Eclipse Eclipse 3.2,3.3(Europa) Android开发工具插件(可选) 其他的开发环境或者IDE JDK5.0或者JDK6.0(仅有JRE是不够的) 安装SDK 下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tools加入到你的路径中 1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/tools的完整路径加入其中。如果没有找到设定PATH变量的行,你可以自己添加一行: export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径> 2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,你可以创建一个.bash_profile文件。 3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。

《Android移动应用基础教程》中国铁道出版社课后习题(附答案)

Android 移动应用基础教程 习题答案 姓名: 班级: 联系方式:

第1章Android基础入门 一、填空题 1、Android是Google公司基于Linux平台开发的手机及平板电脑的操作系统 2、Android系统采用分层结构,由高到低依次为应用程序层、应用程序框架层、核心类库、Linux 内核。 3、ADB的常见指令中,用于开启ADB服务的是adb start-server。 4、在Android程序中,src目录用于放置程序的java代码文件。 5、Android程序开发完成后,如果要发布到互联网上供别人使用,需要将程序打包成.apk文件。 二、判断题 1、Android实际上就是一个手机。× 2、WCDMA是中国自己独自定制的3G标准,中国移动使用的就是这种标准。× 3、android第一个版本Android 1.1是2008年9月发布的。√ 4、gen目录是自动生成的,主要有一个R.java文件,该文件可手动修改。× 5、AndroidManifest.xml文件是整个程序的配置文件。√ 三、选择题 1、随着智能手机的发展,移动通信技术也在不断升级,目前应用最广泛的是(C) A、1G B、2G C、3G D、4G 2、ADT Bundle中包含了三个重要组成部分,分别是(ABC) A、Eclipse B、SDK C、SDK Manager,exe D、ADB 3、应用程序层是一个核心应用程序的集合,主要包括(B) A、活动管理器 B、短信程序 C、音频驱动 D、Dalivik虚拟机 4、ADB的常见指令中“列出所有设备”的指令是(C) A、adb uninstall B、adb install C、adb device D、adb emulator -avd 5、创建程序时,填写的Application Name表示(A) A、应用名称 B、项目名称 C、项目的包名 D、类的名字 四、简答题 1、简要说明Android体系结构中每个层的功能。 Android体系结构总共包含四层,分别是: ●应用程序层:设备上安装的软件应用都属于这一层 ●应用程序框架层:包含应用API ●核心类库:包含系统库和运行环境,系统库包含了底层C代码;运行环境包含了Java 的核心库和Dalvik虚拟机 ●Linux内核:提供Android的底层驱动。 2、简要说明ADB Bundle开发工具中SDK的作用。 SDK包含了Android的API源代码、各种工具、示例工程、用到的各种资源模板等。

android虚拟机和调试

Android虚拟机安装和调试简单教程 虚拟机选择 随着google被墙,安装安卓虚拟机真的是非常困难,你可能试过离线下载和在线下载,但是都是比较困难。Genymotion工具就是提供了Android虚拟环境,能够让我们快速安装和使用,同时在Eclipse中安装插件也可以让自己开发的程序运行在Genymotion的Android虚拟机 Genymotion安装 注册登录 进入Genymotion官网,点击下载按钮,这里必须要输入邮箱。如果是已经注册过直接输入邮箱即可。 如果未注册,输入邮箱和两次密码后,系统会发送一封邮件到你邮箱,请一定要去验证后在进行下一步下载。 注意:一定要进行验证。 1.下载 因为Genymotion运行需要VirtualBox,如果电脑中没安装过,选这个版本。这个版本包含Oracle VirtualBox 4.2.12支持,因此您不用再手动下载安装VirtualBox。

1.如果已经安装过VirtualBox,选择这个版本 2.运行安装Genymotion 双击运行下载的Genymotion安装文件,选择中文语言并点击下一步,下一步

3.可更改安装路径,点击浏览Browse.. 软件默认的路径为C:\Program Files\Genymobile\Genymotion 然后下一步

4.在弹出框选择是否创建快捷菜单[Don't create a Start Menu folder] 点击下一步 5.在弹出框选择是否创建桌面快捷方式[Create a desktop icon], 点击下一步-->安装-->完成

Android APP开发入门教程

Android APP开发入门教程 这篇文章主要介绍了Android APP开发入门教程,从SDK下载、开发环境搭建、代码编写、APP打包等步骤一一讲解,非常简明的一个Android APP开发入门教程,需要的朋友可以参考下。 工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android 程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android 开发入门文章,有一点开发基础的应该都能看懂。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择USE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JAVA_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK 包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Android的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK 目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

Android虚拟机ADT安装及显示helloword应用

一下载相关资源 ADT(Android开发工具)(Android Development Tools的缩写) https://www.doczj.com/doc/148425438.html,/sdk/index.html,点击“Download the SDK ADT Bundle for Windows”,在新打开的页面中选中“I have read and agree with the above term s and conditions”同意许可协议,选择32进制还是64进制,再次点击“Download the SDK ADT Bundle for Windows”按钮就正式开始下载了,文件大小400MB左右。 原来需要单独下载Eclipse和ADT插件,我发现最新的ADT包中已经集成了这两个东西,也就是说,下载则一个就够了,省心。 二搭建Android虚拟机(模拟器) 将下载到压缩包解压缩到一个目录中,需要用到的开发程序都是“绿色”的,也就是说,不需要安装解压缩之后就可以开工了。 执行/sdk/tools/android.bat,会启动Android SDK Manager,正常的话我们可以看到SDK platform已经安装好了,如图: 下面再按如图所示,在菜单中打开:Tools/Manage AVDs,如图:

这个AVD是Android Virtual Device的缩写,可以理解为虚拟机、模拟器,要调试开发应用,当然需要创建一台虚拟机了,点击“New” 在弹出的窗口中为新虚拟机进行一些简单的设置,如图所示:

AVD name:给虚拟机起一个名字 Device:设备(与电脑的分辨率是宽的不同,手机的分辨率是高的,所以当你选择过大的分辨率时,在电脑上可以显示不全,调试麻烦,我就吃了这个亏高度不要高于800)Target:Android的版本,没有特殊情况就用最新版 SD Card:我设置了200MiB 设好之后点击“OK”,顺利的话会显示创建结果,如图:

入门-Android从入门到精通

1 Android 开发从入门到精通Array Android 开发从入门到精通 Android 是一种基于Linux? V2.6 内核的综合操作环境。最初,Android 的部署目标是移动电话领域,包括智能电话和更廉价 的翻盖手机。但是,Android 全面的计算服务和丰富的功能支持完全有能力扩展到移动电话市场以外。Android 也可以用于其他 的平台和应用程序。本专题提供的教程、技术文章首先带大家了解Android 开发,进而深入到Android 开发的各个方面。 Android 开发入门 ?Android 开发简介 Android 是Google 提供的移动、无线、计算机和通信平台。通过使用Android Eclipse 插件,可以在强大的Eclipse 环境中构建Android 应用程序。本教程介绍如何用Eclipse 插件Android Development Tools 进行Android 应用 程序开发,包括对Android 平台和Android Development Tools 的介绍,并开发两个示例应用程序。 ?用Eclipse 开发Android 应用程序 Android 是一种基于Linux? V2.6 内核的综合操作环境。最初,Android 的部署目标是移动电话领域,包括智能电话 和更廉价的翻盖手机。但是,Android 全面的计算服务和丰富的功能支持完全有能力扩展到移动电话市场以外。Android 也可以用于其他的平台和应用程序。在本文中,阅读对Android 平台的简介,并学习如何编写基本的Android 应用程序。Array深入Android 开发 ?手机上的Scala Android 操作系统为移动开发提供强大、开放的平台。它利用了Java 编程语言和Eclipse 工具平台的威力。现在,还 可以将Scala 编程语言加入到其中。在本文中,您将看到如何使用Scala 作为Android 上的主要开发语言,从而可以 使用一种更具表达力、更加类型安全的编程语言编写移动应用程序。 ?构建Android 手机RSS 阅读器 本教程将展示如何使用Android Developer Tools 读取、解析和显示XML 数据。构建一个运行在Android 平台上的 RSS 阅读器,并集成不同的RSS 或其他XML 数据源以构建自己的mash-up 应用。 ?Android 助力云计算 开源的Android 操作系统已经席卷全球,它允许您在任何位置运行复杂的云计算应用程序。它设计用于在电池供电设备(如 T-Mobile G1 智能电话)上高效工作,Android 本质上就是Linux,Android 编程模型有多个层,允许创建为云计算量 身定做的安全应用程序。使用Android 达到新的高度并体验前所未有的移动计算吧。 ?使用Android 实现联网 Android 是面向应用程序开发的丰富平台,它提供一套出色的用户界面元素和数据管理功能。它还为开发连接到真实世界 的应用程序提供了出色的网络选项。您希望连接到哪里?也许您希望告诉全世界您正在使用Twitter。或者希望收到有关 在本地洗衣店或熟食店的排号。如果希望将Android 连接到您所生活的世界,那么请阅读本文。 ?深入探讨Android 传感器 Android 是一个面向应用程序开发的富平台,它拥有许多具有吸引力的用户界面元素和数据管理功能。Android 还提供了 一组丰富的接口选项。在本文中,学习如何配合使用Android 的各种传感器选项监控您的环境。样例代码展示了如何在 Android 电话中录制音频。想构建自己的婴儿监视器吗?想用声音来接听电话或者打开房门吗?请学习如何利用配备有 Android 的设备的硬件功能。

Android动态代码注入调试

目录 一、动态代码注入技术 (1) 二、动态分析工具jdb介绍 (2) 四、jdb动态分析Android实例应用程序 (10) 五、jdb动态分析第三方文件管理器应用程序 (17) 六、动态注入动态链接库 (20) 一、动态代码注入技术 Android动态代码注入即是不修改源程序只修改进程的寄存器、内存值等就能控制程序实现既定目标的一种方法。动态代码注入技术本质上就是一种调度技术,动态代码注入相比于普通的调试,最大的区别就是动态代码注入是一个“自动化调试并达到加载自定义动态链接库”的过程。所谓自动化,其实就是通过代码实现,在Linux上通过Ptrace就可以完成查看变量值、修改变量值、跟踪进程跳转、查看进程调试堆栈等待所有功能,当然,Ptrace功能是比较原始的,平时调试中的功能还需要很多高层逻辑封装才可以实现。一般而言,我们要对一个进程进行动态注入,主要有以下几个方便目的:增强目标进程的功能、修复目标进程缺陷、劫持目标进程函数、窃取目标进程数据、篡改目标进程数据。

如上图所示,进程A注入到进程B后,通过司改寄存器和内存,让进程B加载自定义的动态链接库a,当a被加载后,a会尝试加载其他模块,比如加载dex文件等等,具体的注入过程如下: ?ATTATCH,指定目标进程,开始调试; ?GETREGS,获取目标进程的寄存器,保存现场; ?SETREGS,修改PC等相关寄存器,使其指向mmap; ?POPETEXT,把so path写入mmap申请的地址空间; ?SETRESG,修改PC等相关寄存器,使其指向dlopen; ?SETREGS,恢复现场; ?DETACH,解除调试,使其恢复; 下面就介绍一些简单的进程注入方法: 二、动态分析工具jdb介绍 JDB是一个简单的Java命令行调试器,包含在JDK中。使用JDB

Android基于模拟器的调试

Android基于模拟器的调试 本文档说明怎样在模拟器上使用我们自己编译的Android平台环境进行调试,以及使用过程中可能会碰到的问题和解决方法。 对于Java开发而言,开发环境取决于我们所包含的.jar文件。只要包含我们自己生成的.jar文件,就可以基于模拟器调试我们自己的模块。 1生成Android开发环境 我们所需要的所有.jar文件都生成在Android下面的路径下: out\target\common\obj out\host\linux-x86\android-sdk_eng.[USERNAME]_linux-x86.zip内的android.jar 上面的这些.jar文件通过下面两步编译生成: make make sdk 其中,执行make sdk时会出错,按照下面的方法修改文件: frameworks/base/core/java/android/hardware/Camera.java: line 1359 原来的代码: /** * Set GPS latitude reference coordinate. This will be stored in JPEG EXIF * header. * @param latitude GPS latitude reference coordinate. */ public void setGpsLatitudeRef(String latRef) { set (KEY_GPS_LATITUDE_REF, latRef); } 修改为: /** * Set GPS latitude reference coordinate. This will be stored in JPEG EXIF * header. * @param latRef GPS latitude reference coordinate. */ public void setGpsLatitudeRef(String latRef) { set (KEY_GPS_LATITUDE_REF, latRef); } 使得生成Doc的元字符@param后紧跟的那个字符串为参数列表中的一个,其他几处错误为同一类型的错误,使用同样的方法修改即可。

Android-x86虚拟机安装配置全攻略

Android-x86虚拟机安装配置网上有很多,但是全部说明白的确不多,希望这篇文章能把主要的配置介绍给您,帮助您少走一些弯路。本文分别针对VMWare和Virtual Box两种虚拟机介绍安装配置方法,并描述了如何使用eclipse进行调试。 一、安装Android-x86虚拟机 1、使用vmware安装Android-x86 在https://www.doczj.com/doc/148425438.html,/download下载安装包,下载eeepc版本的iso文件,本例以4.0 RC2版本为例。 运行vmware新建虚拟机:

2、virtual box安装Android-x86 在 Virtual Box 中创建一台新的机器: target OS(目标 OS): 选择 Linux target OS version(目标 OS 版本): others 我选择了 1GB 内存和 1 个 CPU(其他选项保留默认值) 增加一个新的硬盘:VDI drive,动态大小,512M 在 storage(存储)选项中添加一个指向所下载 iso 镜像的 CDROM 3、开始安装 从 boot(启动)菜单中选择 install to hard disk(安装到硬盘)。

接下来创建分区,依次选择new、primary、bootable、write创建一个可引导的主分区。 接下来两步选择yes,其中第二步为开启GRUB管理模式,可以用于调试程序。 二、Android-x86 有内建的快捷键 较常用的有: Alt-F1 = 进入 console 模式 Alt-F7 = 回到 GUI 模式 Alt-F9 = 图形界面 Alt-F10 = 画面旋转 180 度

相关主题
文本预览
相关文档 最新文档