




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android开发工具及原理王洪浪
讲义目录AndroidApplication基本概念;AndroidSDK介绍及安装;AndroidSDK主要工具使用;从Eclipse中使用AndroidSDK;什么是AndroidNDK,为什么需要NDK?NDK提供的主要工具使用;AndroidApplication基本概念;AndroidAPP使用JAVA编写的,AndroidAPP用SDK编译后将数据、资源和代码编译到一个Android程序包,一般以.apk作为结尾;SDK开发阶段资源(String,BMP,ICON,Audio)数据代码(javaclass和C++so)ManifestAndroidAPP(APK包)APP发布AndroidApplication基本概念;AndroidAPP一般由一个或者多个component组成,Application可以包含如下类型的component,目前我们暂时先只关注最常用的Activity,Activity类似于Windows上的Windows,是进行显示和处理用户交互的对象类型,右图是Activity的生命周期迁移图示:AndroidApplication基本概念;AndroidManifest是每个AndroidAPK都会附带的配置文件,是供系统获取APP信息的重要配置信息,一般地,在系统启动一个程序之前,需要从Manifest配置文件获得如下的信息:标识程序运行需要的权限,比如联网,读取存储,读取联系人等;标识运行时候需要的最小系统版本;标识程序需要的硬件依赖,比如依赖Camare,BlueTooth,MultiTouch等等.系统库依赖,比如依赖于
GoogleMapslibrary.其他…AndroidSDK介绍及安装;AndroidSDK无需安装,下载解压就可以使用,使用AndroidSDK可以有两种方法:Commandline方式,直接在命令行使用SDK提供的工具创建工程,部署,编译和调试工程;通过Eclipse的ADT插件来使用,可以利用Eclipse来进行工程创建,部署,编译,调试。
通过Eclipse或者通过commandline两种方式生成的Android工程略有不同,主要是有不同的工程配置文件,其他都是相同的,两种方式各有优缺点,Eclipse开发调试更直观方便,commandline方式编译和部署可以方便的集成进脚本,可以更加方便的自动化。AndroidSDK主要工具使用;使用Commandline来进行开发;
首先使用android命令来创建一个新的android工程,命令如下: android.batcreateproject-nandroidtest1-p./androidproj-aMyactivity-t5--packagecom.navinfo.nds -n指定工程名字为androidtest1; -p指定了工程路径; -a制定了默认的activity名称(相当于windows下主窗口的名称) -t制定了targetid,targetid对应了不同的googleAPIlevel(android系统版本) --package指定了代码Java包名称
AndroidSDK主要工具使用;创建工程成功后,创建了如下的目录及文件结构:
/CYGWIN/HOME/WANGHL/ANDROIDPROJ│AndroidManifest.xml工程配置Manifest文件│pertiesant编译配置文件│build.xmlant编译配置文件│perties本地工程配置文件,不能上传至versioncontrol;│proguard.cfg工程配置文件│perties工程配置文件│├─bin生成的APP
APK所在目录├─libs其他lib,此目录下的文件都被自动打包进APK├─res资源子目录│├─layout画面布局文件(类似于VS2005下的Dialog布局资源)││main.xml│││└─values字符串资源表│strings.xml│└─srcJava源代码子目录└─com└─navinfo└─ndsMyactivity.java
AndroidSDK主要工具使用;创建工程完成后,开始使用Ant来编译工程,首先确保JAVA_HOME环境变量已经定义好,然后直接使用AntDebug或者AntRelease来编译相应的版本;
按照之前我们创建的工程名为androidtest1的工程,切换当前目录到工程目录
运行antdebug后,在bin目录下生成对应的apk包文件;对于调试和单步跟踪,在commandline下是不能进行跟踪,一般地,利用eclipseadt插件,利用eclipse中的javadebugger进行调试;在调试的时候,利用DDMS工具可以查看Android设备输出的log,进行截屏,控制系统进程,查看系统资源使用等功能;使用adb工具可以安装,卸载APK,传输拷贝文件到设备上;
从Eclipse中使用AndroidSDK;在Eclipse中使用AndroidSDK比较简单,只需要在Eclipse上先在线或者本地安装ADT,在ADT中设置后SDK路径就可以开始使用,使用Eclipse创建一个Android工程后,可以看到如下的目录和文件结构;./.classpath相比于使用android工具创建的工程./.ject.classpath是eclipse特有的工程文件;ß./AndroidManifest.xml与android工具生成的相同./assets资源文件夹,与res一样,但不自动生成ID;./bin生成目标./gen自动生成代码./proguard.cfg与android工具生成的相同./perties与android工具生成的相同./res与android工具生成的相同./src与android工具生成的相同什么是AndroidNDK,为什么需要NDK; NDK的目标:在Android1.5或者更高版本上,生成可以供JNI调用的ARM版本的so动态库;
将生成的so动态库拷贝到工程的libs目录,使得这些文件能够自动打包进最终的APK包;InlaterrevisionsoftheNDK,weintendtoprovidetoolsthathelpdebugyournativecodethrougharemotegdbconnectionandasmuchsource/symbolinformationaspossible; NDK提供了:一个GCC交叉编译工具链(compilers,linkers,etc..),用来编译ARMCPU目标程序,支持Linux,OSX和Windows(withCygwin);一系列Android暴露的API头文件及相应lib库文件,在后续系统版本中,这些接口头文件也将保持兼容;
一个Build系统,使得用户可以通过比较少的配置来写一个Makefile文件来管理工程; NDK不能做:NDK不适合编写程序整体框架,一般地,AndroidAPP还是由Java编写,由NDK来开发一些性能关键点接口,整个APP生命期管理,Events管理还是由JAVA来完成;NDK主要工具
;NDK开发的目录结构:androidproject│AndroidManifest.xml│perties│build.xml│perties│proguard.cfg│perties│├─bin├─libs├─jni│├─Android.mkNDK工程配置文件│└─Application.mkNDK编译配置文件├─res└─srcNDK主要工具
;一个Android.mk和Application.mk的例子:更多请参照$NDK/Documentation.htmlAndroid.mk: PROJECT_COMMON_INCLUDE=#$(callmy-dir)/../../../../release/navmgr $(callmy-dir)/../../../../release/nicore $(CLEAR_VARS)TOP_LOCAL_PATH:=$(callmy-dir) monlibraryproject include$(TOP_LOCAL_PATH)/cstl.mk include$(TOP_LOCAL_PATH).mkNDK主要工具
;com.mk:PROJECT_NAME:=comLOCAL_PATH:=$(callmy-dir)/../../../$(PROJECT_NAME)/srcinclude$(CLEAR_VARS)LOCAL_MODULE:=$(PROJECT_NAME)LOCAL_C_INCLUDES:=$(PROJECT_COMMON_INCLUDE)$(LOCAL_PATH)/../inc$(LOCAL_PATH)/../../cstl/incLOCAL_CFLAGS:=-DLINUX-DHAVE_USR_INCLUDE_MALLOC_HLOCAL_SRC_FILES:=\ Com_Cache.c\ Com_DataRea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB36-T1568-2021-五加芽菜生产技术规程-江西省
- 关键装置操作技能培训
- 培训机构开业典礼策划方案
- 2025年注册建筑师建筑设计与审美考核试题
- 2025年社区服务管理师考试试卷:社区服务实施中的社区公共服务均等化
- 2025执业医师临床综合试卷:精准把握考点提升应试能力
- 2025年学校账户管理:开设注销规定的全面解读
- 高频考点:考研电路原理暂态分析专项卷(2025年押题版)
- 临床医学核心领域与发展趋势
- 2025年考研政治马克思主义政治经济学计算题经典案例分析与试题卷
- 北师大版八年级物理下册《7.3重力》同步练习题-附答案
- 陕西省2024年普通高中学业水平合格性考试语文试卷(含答案)
- 《湖南省博物馆调研》课件
- 部编版四年级下册《道德与法治》全册教案(附教学计划及教学进度表)
- 武汉市2025届高中毕业生二月调模拟卷试题
- 高级英语I(下)-华东理工大学知到智慧树章节测试课后答案2024年秋华东理工大学
- 《东方物探HSE管理》课件
- 江苏省南通市(2024年-2025年小学六年级语文)统编版期末考试(下学期)试卷及答案
- 外科主治医师资格考试(专业代码317)历年真题及答案
- 2024年新疆维吾尔自治区中考英语真题含解析
- 电气接地培训课件
评论
0/150
提交评论