搜档网
当前位置:搜档网 › Lazarus开发Android应用程序指南

Lazarus开发Android应用程序指南

Lazarus开发Android应用程序指南
Lazarus开发Android应用程序指南

Lazarus开发Android应用程序指南(中文首发)

本文件描述的安装环境为Windows XP SP3。

1.下载和安装配置FPC和Lazarus安卓(Android)开发环境:

1.1 下载安装JDK:https://www.sodocs.net/doc/92438959.html,/technetwork/java/javase/downloads/index.html,如图1和图2所示。

1.2下载安装Android SDK

从以下网址下载安卓SDK开发包:https://www.sodocs.net/doc/92438959.html,/sdk/index.html,选择如图3 所示。

首先安装JDK,然后安装Android SDK。安装完SDK后需要下载相应的SDK包,打开程序->Android SDK tools->SDK Manager 安装SDK 2.2:

后面的例子会用到。

1.3 下载安装Android NDK:https://www.sodocs.net/doc/92438959.html,/sdk/ndk/index.html

图5

注意:此NDK后来改为下载:android-ndk-r7-windows.zip这个包,上面那个包中的

arm-linux-ld.exe编译时会出错,使用这个包中的不会出错了。地址:

https://www.sodocs.net/doc/92438959.html,/android/ndk/android-ndk-r7-windows.zip。

NDK解压缩就可以了。

1.4检查以下路径的工具是否正确,由NDK安装的。例如我的环境:D:\AndroidFPC\

NDK\android-ndk-r7b\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin。检查库路径:D:\AndroidFPC\NDK\android-ndk-r7b\platforms\android-8\arch-arm\usr

备注:已成功把最新Svn trunk版Lazarus0.9.31和FPC 2.5.1打包成一个安装文件。可以正常安装使用了,不会出错,可以正常生成安卓文件。以下1.5到1.10的步骤都可以跳过。2.1的出错后重定位部分的步骤也可以跳过了。这个安装包放115网盘。网盘地址在第3帖最后。

1.5下载FPC

2.5.1(1月19日版),首先你需要有SVN下载工具。新建一个文件夹,然后SVN检出FPC源码,版本号是16790。新建一个文件夹D:\AndroidFPC\FPC251用于存放SVN源码,右击文件夹选择SVN检出,版本号16790,如图6所示

图6

1.6安装FPC

2.4.4 。简单的安装法是安装Lazarus 0.9.30.2,因为已经包含了。用来编译生成ppcrossarm.exe,后面会介绍。

1.7创建构建脚本并且构建它。先创建输出文件夹:D:\AndroidFPC\FPC251\output

创建一个批处理文件在以下文件夹:D:\AndroidFPC\FPC251 ,文件名build.bat,内容如下:SET PATH=D:\lazarus\fpc\2.4.4\bin\i386-win32\

make crossinstall CPU_TARGET=arm OS_TARGET=linux

CROSSBINDIR=D:\AndroidFPC\NDK\android-ndk-r7b\toolchains\arm-linux-androideabi-4.4.3\ prebuilt\windows\bin OPT=-dFPC_ARMEL BINUTILSPREFIX=arm-linux-androideabi-

INSTALL_PREFIX=D:\AndroidFPC\fpc251\output

pause

现在双击运行build.bat,5分钟后,在D:\AndroidFPC\FPC251\output文件夹中会有两个文件夹:bin 和 units,FPC编译器在D:\AndroidFPC\FPC251\output\bin\i386-win32文件夹中,名为:ppcrossarm.exe,成功构建,这个文件是重点。

1.8复制交叉编译工具。

D:\AndroidFPC\NDK\android-ndk-r7b\toolchains\arm-linux-androideabi-4.4.3\prebuilt\win dows\bin复制3个交叉二进制工具到D:\AndroidFPC\FPC251\output\bin\i386-win32文件夹中。这三个文件的名称为:arm-linux-androideabi-as.exe,arm-linux-androideabi-ld.exe,

arm-linux-androideabi-strip.exe ,重新命名为:arm-linux-as.exe,arm-linux-ld.exe,

arm-linux-strip.exe 。这里注意1.3的描述。

1.9 安装新版Lazarus。

现在我们需要安装最新版本lazarus,把原来的Lazarus 0.9.30.2卸掉,不要忘记同时清理

从https://www.sodocs.net/doc/92438959.html,/ /pub/lazarus/snapshots/下载最新版本的Lazarus 安装。我安装的是:Lazarus-0.9.31-35521-fpc-2.7.1-20120221-win32.exe这个版本。新版已经打包,在115网盘中,自己打包的。下载地址请看第3帖结尾。

1.10 合并工具到Lazarus环境。

复制D:\AndroidFPC\FPC251\output\bin\i386-win32中所有文件到 Lazarus安装文件夹

D:\lazarus\fpc\2.7.1\bin\i386-win32 ,复制文件夹

D:\AndroidFPC\FPC251\output\units\arm-linux到D:\lazarus\fpc\2.7.1\units中。

到了这一步,我们在Windows的中的lazarus部分就配置成功了。下面还有工具及设置要调整。

1.11下载安装设置Ant 。从以下地址:https://www.sodocs.net/doc/92438959.html,/dist/ant/binaries/;选择apache-ant-1.8.2-bin.zip下载就可以了。下载后解压缩,把解压后的文件夹放在:C:\Program Files文件中,然后在环境变量中配置如以下图:

图7

图8

至此,所有windows配置及工具已经全部下载安装完成,可以开始调试程序了。

2.编译lazarus中的Android示例程序。

示例是在lazarus/examples/androidlcl/androidlcltest.lpi。我这里把示例程序放在了

D:\AndroidFPC\demo\demo中,所以以下示例都以此为准。

2.1重新设置Lazarus 。

在打开示例程序之前,我们先要把lazarus重新设置一下,进入最新安装的Lazarus文件夹lazarus\fpc,把2.7.1改为2.5.1,然后重新打开lazarus,会出错:

图9 然后重新选择一下fpc的编译器及源码位置,

图11

点Start IDE,启动lazarus,打开后选择工具->选项,查看环境是否正确设置:

图12

点工具->重新扫描FPC源代码目录。好了。注意,这样配置以后,只能编译生成android项目,其它标准工程会出错。

如果已经安装好lazarus-0.9.31-35594M-fpc-2.5.1-20120229-win32.exe这个安装包,请从这里开始。好了,可以打开android示例了,打开,然后进行工程设置。工程->工程选项->编译选项->路径:

图13

调整红色框部分,添加两个路径:

(1):D:\AndroidFPC\NDK\android-ndk-r7b\platforms\android-8\arch-arm\usr\lib

(2):

D:\AndroidFPC\NDK\android-ndk-r7b\toolchains\arm-linux-androideabi-4.4.3\prebuilt\win dows\lib\gcc\arm-linux-androideabi\4.4.3

如图所示:

图14 Build modes :

图15 代码:

图16

其它具体选项查看示例工程,不再一一列举。

2.2 开始编译及构建android示例。

如果已经按照以上的设置好了android工程,你现在可以Shitf+F9构建工程了。

图17

成功编译了,多么激动人心啊!

2.3 构建APK。

在你使用命令行构建APK之前,请你先打开示例中android文件夹下的local.properties文件。打开后可以看到:

# This file is automatically generated by Android Tools.

# Do not modify this file -- YOUR CHANGES WILL BE ERASED!

#

# This file must *NOT* be checked in Version Control Systems,

# as it contains information specific to your local configuration.

# location of the SDK. This is only used by Ant

# For customization when using a Version Control System, please read the

# header note.

修改最后一行为本机Android SDK的文件夹:sdk.dir=C:/Program Files/Android/android-sdk 进入命令行方式,开始构建APK:

CD lazarus\example\androidlcl\android

Ant debug

我这里直接写了一个批处理,你们可以自己写一个。我这里就可以直接运行demo中的批处理文件:构建APK.bat 。

好了,构建的apk文件在lazarus\example\androidlcl\android\bin中。如果出现找不到

tools.jar,请把C:\Program Files\Java\jdk1.7.0_03\lib\tools.jar 复制到C:\Program

Files\Java\jre7\lib文件夹。

2.4 安装APK到你的手机并且运行。

你可以通过ADB安装或者复制文件到你的手机的SD卡,就可以运行它。关于ADB请看3.1中的ADB Install的内容。在安装之前我们先创建Android模拟器,看3.1中的内容。

3.在Android模拟器和手机中运行APK。

3.1创建并设置模拟器。

运行程序中的Android SDK Tools 的android AVD管理器,创建一个新的模拟器设备:

图18

点击New,设置如下:

图19 SD Cardsupport 需要点右边的New才能添加进去。点击Create AVD,好了,创建了一个模拟器了。

3.2运行模拟器

现在我们运行模拟器。点击Start。

图21

点Launch,开始运行了,等待几分钟,模拟启动完成。

图22

3.3安装和运行APK程序

启动完成模拟器才可以安装程序。

进入命令行方式,进入文件夹:C:\Program Files\Android\android-sdk\platform-tools

使用如下命令把前面生成的apk文件安装进去。

Adb install

我这里是adb install D:\AndroidFPC\demo\demo\android\bin\LCLExample-debug.apk,或者运行demo中的批处理文件:安装APK.bat,等它完成。

图23

显示Success就成功应用软件安装进模拟器了。

Adb常用命令:

Adb install 安装apk到模拟器

Adb uninstall 卸载apk

Adb devices 列出所有模拟器设备

Adb logcat 调试器实时记录

看我们的LCL Test:

运行后:

图25

4.示例程序NDK OpenGL

引用地址:https://www.sodocs.net/doc/92438959.html,/Android_Programming

这些需要用到2.3的SDK,请先下载安装好。

4.1下载安装Android NDK ,Android SDK 和Ant

4.2安装FPC交叉编译器。

4.3 SVN下载最新的lazarus-ccr sourceforge源码:

https://https://www.sodocs.net/doc/92438959.html,/svnroot/lazarus-ccr

或者直接下载:lazarus-ccr/bindings/android-ndk里面的源码就可以了。

4.4 打开lazarus-ccr/bindings/android-ndk/examples/opengltest/opengltest.lpi ,路径设置一下,具体看示例。编译生成。

4.5 配置一下local.properties文件。

4.6 构建APK,安装模拟器2.3.3。

5.如何创建一个新的LCL Android应用程序

引用地址:

https://www.sodocs.net/doc/92438959.html,/Custom_Drawn_Interface/Android#How_to_create_an_LCL_Androi d_Application

以下部分是参考官网和自己研究所得:

创建一个新的LCL-CustomDrawn-Android应用程序可以简单的从示例程序复制。这个示例程序可以从lazarus/examples/androidlcl中找到。然后你需要修改构建文件来变成你自己的新的工程名称和新的Java包名称。

5.1 创建LPI文件

创建它可以从新建->工程->库来建立一个新的文件,然后从示例程序中来改写其它的代码。你需要改写工程LPR文件exported部分的JNI属性名字为你的安卓包的名字。

5.2构建库文件

首先,工程去掉debug信息。Debug信息对安卓没用,并且它使得执行文件的体积太大。看图:

5.3 创建安卓工程结构

和一般的LCL工程构建比起来,像这样配置一个正确的LPI并且拥有一个库主工程文件,也只需要添加所有的安卓工程结构。完全从示例程序复制就可以了,然后修改适应新的工程。然后更改SDK 路径,包名称。包的名称需要在新的工程文件中修改。在文件夹android/src/包名称,在activity java源代码并且在工程的库文件pascal代码中,在exports部分。

上面是翻译了官网和,

自己研究如下:包文件名称和路径要和LPR中的文件名要一样。这里的包指的是Android包。

图31

以上两图是同一张图,看红色框部分。再看Android的java包的文件路径,看下图。

图32

看文件路径名称同样为:src\com\pascal\truetest\LCLactivity。

注意:Java文件要加入到工程中去,打开java文件然后菜单工程->添加代码编辑器中的文件到工程。后来研究了一下,这里不一定。

还要调整编译后的so文件名称和 java中的一样。说明如下:

LCLActivity.java文件中最后部分,第621行:

看黑色框中的lclapp ,那么你的编译后的导出库名称也要lclapp,看工程选->编译选项->路径->Target file name,看图:

图34

注意,lclapp.so前的lib和so文件存放路径位置。

安卓程序的图标和文件名称的更改:

图标和文件名称存放在以下位置中android\res\中,drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹,分别存放72x72、48x48、36x36大小两种图标。而values文件中的strings.xml文件中就是存放安卓文件名称了,打开修改

name="app_name">LCLTest部分的LCL Test就可以了。如是是中文名称,请把文件另存为utf8格式。

生成的APK名称在这里定义:android\build.xml中定义,在2行:

把LCLExample改为你自己的名称。

6.在Android2.2(API 8)中可用的NDK 库

LCL-CustomDrawn设计目标为 Android2.2+ 并且 API库在NDK中如下支持:

(1) libc.so

(2) libdl.so(linker)

(3) OpenGL ES 1

(4) OpenGL ES 2

(5) libjnigraphics.so

(6) liblog.so

(7) libm.so

(8) libthread_db.so

(9) libstdc++.so

当前LCL-CustomDraw-Android 使用 libjnigraphics.so 和 liblog.so 。

7.本地文本绘制

在安卓中本地文本绘制有一些费解并且这个帮助文件也相当糟糕。一些已经了解的在如下:

(1)绘制文本开始以Y坐标作为基准线,

(2)没有帮助文件描述Paint.setTextSize中的尺寸是如何的。有些人说是像素,但是我看到一些不同,它好像依赖于不同设备之间。

(3)也有一些好的事情:

l 可以绘制透明的位图并且使用alphi透明度去实现anti-aliasing(反钜齿处理)和 subpixel rendering(子像素渲染)。文本变得十分漂亮。

l 也可以绘制ARGB 32位非像素格式也是相当漂亮的。

8.Lazarus开发组的实现路线

https://www.sodocs.net/doc/92438959.html,/Custom_Drawn_Interface/Android#Roadmap 2012-2-24

(1) 构建 Lazarus Custom Drawn 控件组。已完成

(2) 为安卓API初始化绑定。已完成

(3) 创建一个应用程序自动生成绑定。已完成

(4) 开始一个新的widgetset(组件集,构件集)。已完成

(5) 实现对JNI的支持。已完成

(6) 合并Lazarus Custom Drawn 控件到LCL并且用它们实现所有最基本的控件。已完成

(7) 为安卓添加文本支持。已完成

(8) 实现基本窗口客户区滚动。已完成

(9) 为桌面平台添加手机模拟器。进行中

(11) 在X11中添加文本支持。尚未进行

(12) 在LCL中添加DPI感应度和自适应。尚未进行

(13) 添加非本地化文本支持通过pasfreetype 。尚未进行

9.关于LazarusCustom Drawn 接口

一个跨平台LCL后端,完全在lazarus内使用Object Pascal编写的。Lazarus 到 Android的接口。LCL-CustomDrawn-Android有以下特性:

此部分尚未完成整理。

10.官方论坛看到的资料

l 引用页:https://www.sodocs.net/doc/92438959.html,/index.php/topic,15951.0.html。Android NDK 目前为止所有的转换pas都在lazarus/lcl/interfaces/customdrawn/android中。但是这个转换目前不包括摄像头和手机通讯簿部分。转换的版本是Android2.2+。对SDK库,非常巨大,可以通过JNI直接访问它们。有人提到如何设置背景为黑色,他说在common_draw中修改,我想是在customdrawn_common单元,这个要测试一下。

2月29日版:lazarus-0.9.31-35594M-fpc-2.5.1-20120229-win32.exe安装包115网盘:

https://www.sodocs.net/doc/92438959.html,/file/belt6tb7

3月4日新版:lazarus-0.9.31-35701M-fpc-2.5.1-20120304-win32.exe安装包115网盘:

https://www.sodocs.net/doc/92438959.html,/file/e7scut2m

3月15日新版:lazarus-0.9.31-36024M-fpc-2.5.1-20120315-win32.exe安装包115网盘:https://www.sodocs.net/doc/92438959.html,/file/e7qlao2q

Android应用程序开发(第二版)课后习题答案最新版

第一章 Android简介 1.简述各种手机操作系统的特点. 答案: 目前,手机上的操作系统主要包括以下几种,分别是Android、iOS、Windows Mobile、Windows Phone 7、Symbian、黑莓、PalmOS 和Linux。 (1)Android是谷歌发布的基于Linux的开源手机平台,该平台由操作系统、中间件、用户界面和应用软件组成,是第一个可以完全定制、免费、开放的手机平台。Android底层使用开源的Linux操作系统,同时开放了应用程序开发工具,使所有程序开发人员都在统一、开放的开发平台上进行开发,保证了Android应用程序的可移植性。 (2)iOS是由苹果公司为iPhone、iPod touch、iPad以及Apple TV开发的操作系统,以开放源代码的操作系统Darwin为基础,提供了SDK,iOS操作系统具有多点触摸操作的特点,支持的控制方法包括滑动、轻按、挤压和旋转, 允许系统界面根据屏幕的方向而改变方向,自带大量的应用程序。 (3)Windows Mobile是微软推出的移动设备操作系统,对硬件配置要求较高,一般需要使用高主频的嵌入式处理器,从而产生了耗电量大、电池续航时间短和硬件成本高等缺点,Windows Mobile系列操作系统包括Smartphone、Pocket PC和Portable Media Center。

随着Windows Phone 7的出现,Windows Mobile正逐渐走出历史舞台。 (4)Windows Phone 7具有独特的“方格子”用户界面,非常简洁,黑色背景下的亮蓝色方形图标,显得十分清晰醒目,集成了Xbox Live游戏和Zune音乐功能,可见Windows Phone 7对游戏功能和社交功能的重视。 (5)Symbian是为手机而设计的实时多任务32位操作系统,它的功效低,内存占用少,提供了开发使用的函数库、用户界面、通用工具和参考示例。操作系统不是完全开放的,核心代码不开放,但是API文档是公开的。 (6)黑莓系统主要在黑莓手机上使用,其特色是支持电子邮件推送功能,邮件服务器主动将收到的邮件推送到用户的手持设备上,而不需要用户频繁地连接网络查看是否有新邮件。同时,黑莓系统提供手提电话、文字短信、互联网传真、网页浏览及其它无线信息服务功能。黑莓系统主要针对商务应用,具有很高的安全性和可靠性。 (7)PalmOS由拥有较多的第三方软件,是32位的嵌入式操作系统,主要在移动终端上使用,操作系统本身所占的内存极小,不具备录音和MP3播放功能。 (8)Linux手机操作系统具有开放源代码的特性,但是也包含入门难度高,集成开发环境差,Linux的产品与个人计算机的连接性较差,具有较强的开发实力的公司很少等不足。 2.简述Android平台的特征

一看就懂的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目录即可。

A20_Android开发手册_V1[1].0

C o n f i d e n t i a l A20Android 开发手册 V 1.0 2013-02013-03 3-15

C o n f i d e n t i a l Revision History Version Date Section/Page Changes 1.0 2013-03-15 初始版本

C o n f i d e n t i a l 目录 一、A20概述 (4) 1.1A20主控介绍.....................................................................................................................51.2外围设备介绍.....................................................................................................................51.3软件资源介绍.....................................................................................................................5二、建立开发环境. (5) 2.1硬件资源............................................................................................................................62.2软件资源. (6) 2.2.1安装JDK (ubuntu12.04).....................................................................................62.2.2安装平台支持软件(ubuntu12.04).....................................................................62.2.3安装编译工具链(ubuntu12.04).........................................................................62.2.4安装phoenixSuit (windows xp )........................................................................72.2.5其他软件(windows xp ).. (7) 三、源码下载 (8) 3.1wing 源码下载....................................................................................................................83.2仓库的目录树.. (8) 3.2.1android 目录树.........................................................................................................83.2.2lichee 目录结构.. (9) 3.2.2.1buildroot 目录结构........................................................................................93.2.2.2linux-3.3目录结构......................................................................................103.2.2.3u-boot 目录结构..........................................................................................113.2.2.4tools 目录结构............................................................................................123.2.2.5boot 目录结构 (12) 四、编译和打包 (13) 4.1源码编译 (13) 4.1.1lichee 源码编译......................................................................................................134.1.2android 源码编译...................................................................................................134.2打包固件.. (13) 4.2.1完全打包...............................................................................................................134.2.2局部打包 (14) 五、固件烧写 (14) 5.1使用PhoenixSuit 烧写固件.............................................................................................145.2使用fastboot 更新系统 (14) 5.2.1进入fastboot 模式.................................................................................................145.2.2fastboot 命令使用.. (15) 六、recovery 功能使用 (15) 6.1键值的查看......................................................................................................................156.2按键选择..........................................................................................................................166.3功能使用..........................................................................................................................16七、调试 (17) 7.1调试apk...........................................................................................................................177.2调试linux 内核. (17)

用 Eclipse 开发 Android 应用程序

在 Eclipse 环境中进行 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 活动,这是本教程的示例应用程序的主要入口点。 ?Main.xml —这个文件包含 Android 活动所用的视觉元素或资源。 ?R.java —这个文件是由 Android Developer Tools 自动生成的,它把视觉资源“连接” 到 Java 源代码。 ?AndroidManifest.xml(完整)—这是完整的 AndroidManfest.xml 文件,包含每个重要元素的描述。

Android开发指南-二维图形

Android开发指南-二维图形收藏 二维图形2D Graphics Android 提供一个定制的2D图形库,用来绘制图形图像和制作动画。你将从 android.graphics.drawable和android.view.animation包中找到这些通用类。 本文简单介绍如何在Android应用程序中进行画图。我们将讨论使用Drawable对象画图的基础知识,如何使用几个Drawable子类,以及如何创建动画,一个图形的补间动画或者一系列图形的连续动画(就像电影胶卷一样)。 可绘制物Drawables 一个Drawable 是一个“某些可以被绘制的物体”的一般抽象。你将发现这个Drawable类扩展了多种具体可绘制图形类,包括 BitmapDrawable, ShapeDrawable, PictureDrawable, LayerDrawable, 等等。当然,你还可以扩展这些类来定义你自己的具有独特行为的可绘制对象。 有三种方式来定义和实例化一个Drawable:使用一个保存在你的项目资源中的图像;使用一个定义了Drawable属性的XML文件;或者使用通常的类构造函数。下面,我们将挨个讨论前面两种方法(对于一个经验丰富的开发人员而言,使用构造函数没什么新意)。 从资源图像中创建Creating from resource images 一个为你的应用程序增加图形的简单方法是通过引用项目资源中的一个图片文件。支持的图片文件格式有PNG(推荐的),JPG(可接受的)和GIF(不鼓励的)。这个技术将显然推荐使用在应用程序图标,logo,或者其它类似使用于游戏中的图形。 为了使用一个图片资源,只要把你的文件添加到你项目的res/drawable/目录即可。从那里,你可以在代码或XML布局中进行引用。任何一种方式,都是通过资源ID来引用,资源ID是不带扩展后缀的文件名(比如,my_image.png通过my_image来引用)。 注意:图像资源被放在res/drawable/里。也许会通过aapt工具进行无损图像压缩而被 自动优化。比如,一个不需要多于256色的真彩色PNG图片可能会被转换成一个带有调 色板的8位PNG。这产生了相同质量但占用更少内存的图片。因此需要意识到该目录下 的二进制图像可能会在编译期间被改变。如果你想以比特流读取一个图片并转换为一个 位图,那么需要把你的图片文件放在res/raw/目录,这里的文件不会被优化。 示例代码Example code 下面的代码片断说明了如何构造一个ImageView,从drawable资源中使用并添加到布局中。LinearLayout mLinearLayout; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Create a LinearLayout in which to add the ImageView mLinearLayout = new LinearLayout(this);

Android开发规范参考文档

Android开发参考文档 一、Android编码规范 1. java代码中不出现中文,最多注释中可以出现中文.xml代码中注释 2. 成员变量,局部变量、静态成员变量命名、常量(宏)命名 1). 成员变量: activity中的成员变量以m开头,后面的单词首字母大写(如Button mBackButton; String mName);实体类和自定义View的成员变量可以不以m开头(如ImageView imageView,String name), 2). 局部变量命名:只能包含字母,组合变量单词首字母出第一个外,都为大写,其他字母都为小写 3). 常量(宏)命名: 只能包含字母和_,字母全部大写,单词之间用_隔开UMENG_APP_KEY 3. Application命名 项目名称+App,如SlimApp,里面可以存放全局变量,但是杜绝存放过大的实体对象4. activity和其中的view变量命名 activity命名模式为:逻辑名称+Activity view命名模式为:逻辑名称+View 建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view 5. layout及其id命名规则 layout命名模式:activity_逻辑名称,或者把对应的activity的名字用“_”把单词分开。

命名模式为:view缩写_模块名称_view的逻辑名称, 用单词首字母进行缩写 view的缩写详情如下 LayoutView:lv RelativeView:rv TextView:tv ImageView:iv ImageButton:ib Button:btn 6. strings.xml中的 1). id命名模式: activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称,strings.xml中,使用activity名称注释,将文件内容区分开来 2). strings.xml中使用%1$s实现字符串的通配,合起来写 7. drawable中的图片命名 命名模式:activity名称_逻辑名称/common_逻辑名称/ic_逻辑名称 (逻辑名称: 这是一个什么样的图片,展示功能是什么) 8. styles.xml 将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中; 9. 使用layer-list和selector,主要是View onCclick onTouch等事件界面反映

Android应用开发基础习题

-- 任务一Android 开发环境的搭建 第一部分知识回顾与思考 1.Android 的四层架构分别包括哪几层?分别起到什么作用? 答:Linux 内核层(Linux Kernel ):基于Linux 内核,内核为上层系统提供了系统服务。 系统库层(Libraries ):系统库基于C/C++ 语言实现,通过接口向应用程序框架层提供编程接口。 应用框架层(Application Framework ):为开发者提供了一系列的Java API,包括图形用户界面组件

View 、SQLite 数据库相关的API 、Service 组件等。 应用程序层(Applications ):包含了Android 平台中各式各样的应用程序。 第二部分职业能力训练 一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内) 1.Android 四层架构中,应用框架层使用的是什么语法?(C)A .CB .C++C.Java D.Android 2.Android 四层架构中,系统库层使用的是什么语法?(B)A .VBB.C /C++C.Java D .Android 3.应用程序员编写的Android 应用程序,主要是调用(B)提供的接口进行实现。 A .应用程序层DCB.应用框架层.应用视图层.系统库层

二、填空题(请在括号内填空) 1.在Android 智能终端中,有很多应用如拍照软件、联系人管理软件,它们都属于Android 的(应用程 序)层。 2.为了让程序员更加方便的运行调试程序,Android 提供了(模拟器),可以方便的将程序运行其上, 而不要实际的移动终端。 程序运行,我们需要安装(Java 3.为了支持)。JDK 三、简答题 1.简述Android 开发环境安装的步骤。 答:下载并安装JDK ,配置JDK 的环境变量; 从Anroid 官网上下载Android 开发组件(包含Eclipse 和

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程序设计

一、填空题 1、下列哪个不是Activity的生命周期方法之一() A. onCreate B. startActivity C. onStart D. onResume 2、下列用于进行文本输入的组件是() A、TextView B、Button C、EditText D、Label 3、下面哪个不是Android的界面布局方式() A、BorderLayout B、LinearLayout C、TableLayout D、RelativeLayout 4、下列不是手机操作系统的是( ) A. Android B. Window Mobile C. Apple IPhone IOS D.windows vista 5、定义LinearLayout垂直方向布局时设置的属性是() A.android:layout_height B.android:gravity C.android:layout D. android:orientation vertical 6、Android 项目工程下面的assets 目录的作用是什么( ) A、放置应用到的图片资源。Res/drawable B、主要放置一些文件资源,这些文件会被原封不动打包到apk 里面 C、放置字符串,颜色,数组等常量数据res/values D、放置一些与UI相应的布局文件,都是xml 文件res/layout 11、在XML布局 7、跳转到另一个Activity的方法是( ) A.runActivity() B.goActivity() C.startActivity() D.startActivityForIn() 8、用于进行文字显示的组件是( ) A.TextView B.Button C.EditText https://www.sodocs.net/doc/92438959.html,bel 9、下面退出Activity错误的方法是() A.finish() B.抛异常强制退出

android系统和开发指南

Google Android System and Development Tutorial Abstract Android是Google公司所开发的手机用途操作系统架构。Android包含了操作系统、系统中间的转换程序和重要的应用程序。人们透过Android可以有比较好的手机专属系统,并且让用户更方便按照自己的需求扩充自己的手机功能。开发人员也因为Android的独特架构,使得以往要针对不同系统撰写的手机程序变得只要写一次就好,成为真正的可携式程序(Portable Program)。我们在本篇报告中介绍Android的特性、以及如何做到以上的架构。最后我们实践了Android 架构上的程序开发。 Introduction 手机系统长久以来是学术界和产业界焚膏继晷研究的对象。手机属于mobile system的一种,即便和个人计算机一样属于数字装置,但是特性却是大相径庭。最主要的差异是个人计算机通常依靠插座供电;手机大部分的时间是靠电池续航。因此手机系统必须要设法省电,否则做为一个mobile system,不能应付使用者长时间在外的需求是不适当的。此外手机为了携带放便,尽量缩小体积,以至于使用的硬设备有诸多限制,例如:难以扩充硬件、常常被迫使用整合性芯片组、不能选择自己符合自己需求的硬件…。以上两项主要限制使得手机系统被迫和个人计算机发展出不一样的特性。 另外常见的手机系统有Symbian、Windows CE。以往手机系统以封闭式为主,使用者能够决定的设定和服务不多。因为电信公司是发配手机内容与服务的最后服务端,使用者没有选择,只好接受质量良莠不齐,没有量身订做的内容了。简而言之,服务内容被电信公司给垄断。反观Symbian (S60)和Windows CE,以及Android系统是一个开放式的系统,允许用户透过增加程序和套件增加服务和内容。开放式系统是个潮流,能够给使用者最大的福祉,使电信公司无法再垄断手机内容。

安卓开发环境搭建完全手册

安卓开发环境搭建完全手册 小安:博士,刚才听你说了这么多,我感觉Android平台真是前景无限,决定要从事Android开发,成为一名Android高手。今后请您多多指教! 大致:小安,我代表全体Android开发人员欢迎你加入Android开发的队伍,现在我就告诉你开发Android需要准备些什么。 1.1准备所需软件 1.1.1Android开发需要的工具 1)JDK5或JDK6 需要注意的是仅有JRE是不够的。JRE是Java的运行环境,而JDK不仅包含了JRE,还包含了我们开发Java程序所需要的工具集合。 JDK可以到:https://www.sodocs.net/doc/92438959.html,/javase/downloads/index.jsp页面下载。 2)Eclipse3.5 使用MyEclipse也可以,但由于MyEclipse是收费的并且插件较多影响运行速度,因此不建议采用。Eclipse是一个开放源代码的、基于Java的可扩展的集成开发环境(IDE)。Eclipse中可以集成进多种插件,以完成特定语言的开发。 下载地址:https://www.sodocs.net/doc/92438959.html,/downloads/页面中的EclipseIDEforJavaEEDevelopers链接。 3)Android SDK: SDK是我们开发Android应用程序的软件开发工具包。 下载地址:https://www.sodocs.net/doc/92438959.html,/android/android-sdk_r05-windows.zip 4)Eclipse的插件ADT(Android Development Tools)

Android开发工具(ADT)是一个为EclipseIDE设计的旨在提供一个强大的、集成的环境来建立Android 应用程序的插件。ADT扩展了Eclipse的功能,可以快速建立新的Android项目,创建一个应用程序界面。它添加了基于Android框架API的组件,使用AndroidSDK工具调试你的应用程序,甚至导出签名(或未签名)APKs以分发你的应用程序。在Eclipse中强烈建议使用ADT进行开发,ADT提供了令人难以置信的提高开发Android应用程序的效率。 下载地址:https://www.sodocs.net/doc/92438959.html,/android/ADT-0.9.5.zip 准备好这些工具,我们就可以安装这些软件来搭建Android的开发环境了。有一点需要注意,以上的链接部分会由于官方的更新而产生变动,有时下载到的版本不同,但下载的方式如此,如果遇到问题可以参考官方帮助文档 1.2安装所需的软件 1.2.1.安装JDK6 1.找到JDK安装文件,双击运行,界面如下:

Android应用开发试题

Android应用开发试题 一、选择题(每题2分,共30分) 1. 下列不是手机操作系统的是?(D) A.Android B. Window Mobile C. Apple IPhone IOS D.windows vista 2.Android的VM虚拟机是哪个?A A.Dalvik B.JVM C.KVM D.framework 3. AndroidVM虚拟机中运行的文件的后缀名为(B) A.class B.apk C.dex D.xml 4. 下面关于Android DVM的进程和Liunx的进程,应用程序的进程说法正确的是 A.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例,而每一个DVM都是在Liunx中的一个进程,所以说可以认为是同一个概念。B B.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例,而每一个DVM不一定都是在Liunx 中的一个进程,所以说可以认为不是一个概念。 C.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例,而每一个DVM不一定都是在Liunx中的一个进程,所以说可以认为不是同一个概念。 D.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例,而每一个DVM都是在Liunx中的一个进程,所以说可以认为是同一个概念。 5. 下列哪个可做EditText编辑框的提示信息?(D) A. android:inputType B. android:text C. android:digits D. android:hint 6. 在AndroidManifes.xml中描述一个Activity时,该Activity的label属性是指定什么( B) A.指定Activity的图标 B.指定Activity的显示图标 C.指定Activity和类相关联的类名 D.指定该Activity的唯一标识 7. 关于ContentValues类说法正确的是( A ) A.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是String类型,而值都是基本类型。 B.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是任意类型,而值都是基本类型。 C.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名可以使空,而值都是String类型。 D.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是String类型,而值也是String类型。 8. Activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行( A) A.onPause() B.onCreate() C.onResume() D.onStart 9. 下列哪个不是Activity的生命周期方法之一?(B) A. onCreate B. startActivity C. onStart D. onResume 10.如果在android应用程序中需要发送短信,那么需要在AndroidManifest.xml文件中增加什么样的权限( D). A.发送短信,无需配置权限

Android程序设计练习卷答案

1.在android程序中,Log.d()用于输出什么级别的日志信息?(A) A、调试 B、信息 C、警告 D、错误 2.以下情况不会创建Context对象的是(C) A.创建Application 对象时 B.创建Service对象时 C.创建ContentProvider对象时 D.创建Activity对象时 3.下列不属于Android中广播中的类别的是(D) A.Normal Broadcas B.Sticky Broadcast C.Local Broadcast D.Order broadcast 4.以下哪个不是Intent的Activity启动方式(A) A.FLAG_ACTIVITY_BROUGHT_TO_FIRST B.FLAG_ACTIVITY_CLEAR_TOP C.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET D.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 5.安卓AndroidManifest.xml文件的子节点不包括(C) A.application B.services C.permission D.provider 6.下面那个不是Fragment的生命周期方法(D) A. onStart B. onAttach C. onDestoryView D. onRestart 7.下面那种不是安卓原生支持的Menu(A) A.Selected Menu B.Option Menu C.Submenu D.Context Menu 8.下面不属于android的动画分类的有(D) A、Tween B、Frame C、Property D、Animation 9.下列哪个不是安卓service自带的方法(A) A.OnResume B.onCreate C.onStartCommand D.onRebind 10.下列属于SAX解析xml文件的优点的是(B) A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能 B、不用事先调入整个文档,占用资源少 C、整个文档调入内存,浪费时间和空间 D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失 11.下列关于Soundpool和MediaPlayer的说法,错误的是(A) A.MediaPlayer支持多个音乐同时播放 B.MediaPlayer资源占用率高 C.MediaPlayer延迟时间较长 D.new MediaPlayer()后要调用prepare()方法才能播放 12.关于res/raw目录说法正确的是(A) A、这里的文件是原封不动的存储到设备上不会转换为二进制的格式

Android开发指南 - 样式和主题

Android开发指南 - 样式和主题 样式和主题(Styles and Themes) 一个样式(Style)是一个包含了指定样子和格式的作用于视图控件(View)或者窗体(Window)属性集合。一个style可以指定很多属性,比如高度,填充,字体颜色,字体尺寸,背景色等。一个Style在xml资源文件中定义,并且和在xml中指定的布局区分开来。 在Android里的样式和Web设计中的CSS共享一个相似的原理,它们允许你分离设计(Design)和内容(Content). 举个例子,通过使用一个style,你可以让你的布局xml像下面这样: 并且,可以变成下面这样: 所有关联到style的属性已经在布局xml中被删除了,并且放在一个叫做“CodeFont”style中定义了。它通过一个style属性被应用上。在下面的章节,你将会看到如何定义style。 一个主题(Theme)也是一个style,它被应用在所有的Activity或者application上,而不是个别的视图控件(View)(像上面的示例一样)。当一个style被当做一个theme来应用,每一个activity或者application中的视图控件将应用每一个它支持的样式属性。比

Android开发入门文档 v1.1

RK28平台技术文档 Android 开发入门 部 门: 内核组 版 本: V1.1 作 者: 陈美友 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 日 期: 2008-12-1 关键字 Linux 、Android 、Native C/C++、编译、下载 概 述 本文档主要讲述了Android 的下载、编译,以 及本地C/C++程序的开发、Android 应用程序 的开发等… 本文档适用了Android 开发的初学者

目录 下载ANDROID源码 (3) 编译ANDROID源码: (4) 编译ANDROID中的LINUX内核: (5) 编译NATIVE C/C++程序 (6) 运行NATIVE C/C++应用程序 (7) 在WINDOWS XP操作系统上构建ANDROID应用程序开发环境 (8) 编写ANDROID应用程序 (9) ANDROID SDK文件夹结构分析 (9) ANDROID源代码结构 (10) ANDROID应用程序生成 (10)

注: 如果你要创建Android的SDK,那么你必须安装JDK5,不要安装JDK6 $sudo apt-get install sun-java5-jdk 如果你使用apt-get下载安装程序时,发现某些安装包无法下载的情况, 那么你可以从网络上其它地方用其它的工具下载安装包,然后进行安装。我 通常是通过Windows上的迅雷下载,然后通过VMware中的文件共享传到Linux系统中。 我的电脑: 主系统:Windows XP 模拟器安装在Windows XP上 VMware中安装Linux:Ubuntu8.10 Android源码存放路径:~/mydroid 下载Android源码 在这里面以Ubuntu(x86)操作系统为例,说明下载Android的步骤: 下载必要工具: 下载GIT工具: $ sudo apt-get install git-core gnupg 下载JDK6: $ sudo apt-get install sun-java6-jdk 下载下列工具包:flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev 下载Valgrind工具(可选): $ sudo apt-get install valgrind 安装Repo工具: 创建目录存放Repo: $ cd ~ $ mkdir bin $ export PATH=~/bin:$PATH 下载Repo: $ curl https://www.sodocs.net/doc/92438959.html,/repo >~/bin/repo

相关主题