ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:220.41KB ,
资源ID:18972944      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18972944.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Android 开发环境搭建Word格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Android 开发环境搭建Word格式.docx

1、至此,Android开发环境大功告成,下面就来看下如何在模拟器中运行程序。三、 测试Android程序在模拟器中的运行1 新建项目选择Eclipse菜单File - New - Android Project,填写工程基本信息后确认。2 查看运行效果选择Eclipse菜单Run - Run,选择以Android方式运行。Android手机模拟器启动后,稍等片刻后显示Android Logo,然后进入锁定键盘的待机状态,点“Menu”按钮解锁后就会显示你的测试程序。由于模拟器启动时间较长,因此开发期间模拟器窗口最好不要关闭。此外模拟器可更换皮肤,并可按Ctrl+F12来切换显示模式,下面是我更换

2、G1手机皮肤后的例子:四、 NDK使用 1. 配置NDK 本处讨论在Windows下使用cygwin处理NDK的Windows版本。Linux下的使用方法基本一致。根据unix系系统的规范,所有讨论中涉及名称的字符串均大小写敏感。这里仅NDK的配置和C代码编译须用cygwin,此后的ANDROID调试等均可使用普通的命令行操作。参考链接:R1 R3配置方法:收到NDK后首先在NDK的主目录(其中包含apps, build, docs, 文件夹)下,输入命令:build/host-setup.sh 用来配置NDK工具(例如编译器的使用,目标平台等),最终生成out/host/config-hos

3、t。由于out必须在主目录中,因此上述命令须在主目录中输入。 R4配置方法:Cygwin安装时,选择一个镜像下载点,接着install Devel下的Gcc和make两个文件就可以了。现在说一下,怎样编译项目的问题:准备:在Cygwin安装目录下,找到home/username的目录下的.bash_profile文件,打开文件在最后加上NDK=/cygdrive/d/android-ndk-r4-windows/android-ndk-r4 export NDK HOST_AWK=/usr/bin/gawkexport HOST_AWK其中d/android-ndk-r4-windows/an

4、droid-ndk-r4是NDK的根目录。在R4下,NDK提供了2种编译方式:1.在Cygwin下,输入cd $NDK/ndk-build 2.在Cygwin下,$NDK/ndk-build -C 2. 编译本地源码 本地源码(主要如C文件)均放在sources下。NDK提供了两个示例,放在sources/sample目录下。编译只需要在主目录中输入命令:make APP=对于上述示例,分别为hello-jni和two-libs。1. sources文件夹配置 由于NDK已将MAKE生成系统建立妥善,所以只需要在sources中建立包含源文件的文件夹。由于NDK的配置是以sources目录作为

5、源文件工程的根节点,因此如果要将源文件工程放在更深的目录,例如sourcespackage1proj1,那么就需要在中间的目录中加入一个Android.mk文件,用以转到更深的目录其内容示例可见sourcessamplesAndroid.mk。上述文件夹proj1名称建议以源文件模块的名称命名。在源文件工程文件夹中需要有至少一个Android.mk文件用以定义源文件编译信息。可以参照sourcessamples中的两个工程中的示例。其中LOCAL_MODULE变量必须定义成指定源文件工程(模块)的名称。2. C源程序JNI入口 C源程序的入口遵照JNI规范:Java_FuncName其中包名称

6、和Android的JAVA类所属包需要保持一致,只是“.”用“_”替换;JAVA类即是包含这个(实例)方法的类;FuncName则是呈现在JAVA中使用的方法名称。3. apps文件夹配置 在apps文件夹中创建一个ADNROID工程文件夹,名称为APP工程(JAVA)名称,在其中新建一个Application.mk的配置文件,参照两个示例工程设置。主要设置两个变量:APP_PROJECT_PATH,这个是ANDROID工程路径和相应指定库生成目录(复制而来,名称为“lib源文件模块名”),一般设置成$(call my-dir)/project,即当前目录下project中,而库生成目录就是p

7、roject/libs。APP_MODULES则是这个ANDROID将包含的上述源文件工程,填入涉及的一个或多个源文件工程名称。最后在主目录中用make APP=3. 创建工程 NDK两个例程已经含有完整的ANDROID例程,可以在Eclipse中直接导入打开。 如果新建一个工程,只需要仿照ANDROID工程的一般过程开始,由于本地库so处于工程目录下,Eclipse会自动将其包含在工程中,并最终一并链入apk。4. 关于JAVA本地(Native)接口JNI 一些参考文档:1. 2. 3.http:/journals.ecs.soton.ac.uk/java/tutorial/native1

8、.1/implementing/method.html 有几个注意点:1. 不能在本地代码中跨线程使用JNI量,而目前又暂没找到联入正确JNI环境量和对象或者JVM的方法,因此只能在调用线程中使用回调,意味着设计需要让回调发生在JAVA调用者线程中。2. CallXXXMethodX(env, obj, methodid, va_arg)中,va_arg必须输入指针(对象的指针如jstring *,原子的指针如int *)。3. 对于跨线程的UI操作侧需要用runOnUiThread。5. ANDROID工具使用 1. 虚拟设备创建(AVD) 使用android命令 创建:android cr

9、eate avd n -t 在通常情况下接受默认选项(不建立hardware profile) 删除:android delete avd n 列印:android list 2. 在命令行)运行虚拟机 命令:emulator avd 3. ADB常用命令 参考:安装程序:adb install 运行命令SHELL:adb shell ,进入SHELL,可以操作访问设备文件系统 adb shell ,直接执行命令(SHELL中可以执行logcat) 复制文件:adb push ,复制入文件 adb pull ,复制出文件 adb devices ,查看运行的模拟器/设备状态 6. 【示例程序】

10、 一个简单的在屏幕上间歇打印的程序。1. 本地C代码 (仅用于示例,不保证正确性和安全性)#includestdio.hstring.hmalloc.hpthread.hunistd.htypedefstruct JNIEnv*env;jobjectthiz;jclasscls;UpdateTextContext;staticintgRunnerRunning=0;update_text(UpdateTextContext*context,char*buf) envcontext-thizclsjmethodIDmid(*env)-GetMethodID(env,cls,appendText,

11、(Ljava/lang/String;)V);if(mid=NULL) return-1;jstringsNewStringUTF(env,buf);CallVoidMethodV(env,thiz,mid,&s); voidJava_com_eden_sample_Sample_initTextGenerator(JNIEnv*env,thiz) Java_com_eden_sample_Sample_runTextGenerator(JNIEnv*buf64;counterUpdateTextContextcontext;context.envcontext.thizcontext.cls

12、GetObjectClass(env,thiz);1;while(gRunnerRunning) sprintf(buf,samplecounting:%dncounter);rupdate_text(&context,(r!0) break;counter+;sleep(1);/*sleepforonesecond*/Java_com_eden_sample_Sample_stopTextGenerator(JNIEnv*2. JAVA程序 Package com.vendor.sample; /* package that must keep in accordance with the

13、native code */import android.app.Activity;import android.os.Bundle;import android.widget.TextView;import java.util.*;public class Sample extends Activity enum UpdateType Modify, Append private class UpdateTextRunner implements Runnable public UpdateTextRunner(String s, UpdateType type) mS = s; mType

14、 = type; public void run() if (mType = UpdateType.Modify) mLines.clear(); mLines.add(mS); mTV.setText(mS); else /* intended to display no more than mMaxLineCount * lines and scroll, however this is not * always the case, consider if mS is broken * into several lines */ while (mLines.size() mMaxLineC

15、ount) mLines.remove(0); StringBuilder sb = new StringBuilder(); for (int i = 0; i mLines.size(); i+) sb.append(mLines.get(i); mTV.setText(sb.toString(); private String mS; private UpdateType mType; /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceSta

16、te) super.onCreate(savedInstanceState); mTV = new TextView(this); mTV.setText( initial text ); setContentView(mTV); initTextGenerator(); /* The following thread object simply contains * an overriden run method which invokes * runTextGenerator on this Sample object mThread = new TextUpdatorThread(thi

17、s); mThread.start(); public void onDestroy() stopTextGenerator(); try mThread.join(); catch (InterruptedException e) e.printStackTrace(); super.onDestroy(); public void modifyText(String s) this.runOnUiThread(new UpdateTextRunner(s, UpdateType.Modify); public void appendText(String s) this.runOnUiTh

18、read(new UpdateTextRunner(s, UpdateType.Append); public native void initTextGenerator(); public native void stopTextGenerator(); public native void runTextGenerator(); private TextView mTV; private ArrayList mLines = new ArrayList(); private int mMaxLineCount = 20; private TextUpdatorThread mThread;

19、 static System.loadLibrary(sample / the corresponding C library is libsample.so五、 Window下cygwin配合Eclipse配置1. 安装 Sequoyah Android Native Code Support/download.eclipse.org/sequoyah/updates/1.1/2. 配置 方法一、1. 在Main 页面里 Location 栏 选择 你安装Cygewin时配置的root目录下的 bash.exe 所在路径, F:androidNDKCygewinbinbash.exe 在Wo

20、rking Directory 里配置路径为 root下的bin目录的路径 F:androidNDKCygewinrootbin 最重要的是在Arguments的配置,(注意! NDK r4版本编译C,C+程序的方式做了变化) -login -c cd /cygdrive/f/android/workspace/HelloNDK/jni & $NDK/ndk-build以上参数表示 首先 登陆 Cygwin , 然后 进入 HelloNDK 这个工程 下的jni 目录(该目录下存放 c或c+的文件和 Android.mk)。最后 执行 “ndk-build” 命令 执行编译。如果ndk-bui

21、ld命令无法识别,先确认是否成功配置了NDK 的所在路径(如F:androidNDKandroid-ndk-r4)到Path环境变量里。2.2 在Refresh 页,选择 Specific resources 并选择要刷新的文件为jni 2.3 在Build Options 页 如下选择,则可以实现修改C或C+程序后立自动编译生成*.so 文件 同样选择 C或者C+原程序所在目录下的所有文件,作为相关的资源(jni) 选中“Allocate Console” 选中“Launch in background” 选中“Run the builder After a Clean” 选中“Run th

22、e builder During manual builds” 选中“Run the builder During auto builds” 选中“Specify working set of relevant resources” 点击“Specify Resources”按钮,选择你项目的JNI目录,并包含所有的文件。 点击“OK”按钮。方法2:仅适用helios 版本1、将cygwin的目录加入到环境变量2、在ndk目录下写一个ndk-build.bat,内容如下:echo offset TmpPARAM=-login -c cd /cygdrive/%1 & sh $NDK/ndk-buildset PARAM=%TmpPARAM:=%bash.exe %PARAM%3、添加工程编译选项ndk-build.bat $ProjDirPath如图

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1