Android开发之- API包类最全面说明

合集下载

安卓

安卓
1.2 Android帮助文档
对于每个Android开发者而言, Android提供的官方文档是必看的。 在Android SDK安装目录下找到docs子目录,打开docs子目录 index.html页面,并单击该页面上方的Dev Guide标签面,这就是 Android 官方提供的开发指南文档。接着单击下图中的Reference标 签页,看到的就是Android的API文档了。
Android项目目录结构
Android Android 平台开发与应用
Android应用结构分析
Android Android 平台开发与应用
Android应用结构分析
1、src文件夹:包括了项目的所有包及源文件(.java)。
打开其目录下的HelloAndroid.java文件,它就是Android 项目的Java文件,程序清单如下:
Android Android 平台开发与应用
1、界面编程与视图View
1.3 控制UI界面的几种方式
Android控制组件行为的方式有以下三种:
在XML布局文件中通过XML属性进行控制 在Java程序代码中通过调用方法进行控制 XML布局文件和Java代码混合控制
Android Android 平台开发与应用
Android Android 平台开发与应用
Android应用结构分析
2、gen文件夹:该目录用于保存Android自动生成的
的一个R.java文件。 R.java是在建立项目时自动生成的, 这个文件是只读模式,不能更改,定义该项目所有资源的 索引文件。
Android Android 平台开发与应用
Android Android 平台开发与应用
Android应用的基本组件介绍

第1章 Android基础入门

第1章 Android基础入门

July 2012
KitKat
4.4 - 4.4.4
Oct 2013
Lollipop
5.0 - 5.1.1
Nov 2014
Marshmallow
6.0 - 6.0.1
Oct 2015
Nougat
7.0 - 7.1
Sept 2016
Oreo
8.0 - 8.1
Sept 2017
Pie
9.0
Aug 2018
2021/10/19
第1章 Android基础入门
7
智能手机操作系统市场份额
数据来源:https:///cn/smartphone-os-market-share/
2021/10/19
第1章 Android基础入门
8
Android的优势
基于开源技术 自由度高 选择多样化 广泛的开发群体
2021/10/19
第1章 Android基础入门
6
Android和iOS的区别
对比项目
Android
iOS
开发语言
Java、Kotlin
Objective-c、Swift
系统开放性 Android源码开放,开放性更好 封闭操作系统,开放性较差
系统安全性 源代码开放,安全性较差
封闭操作系统,安全性更高
Dalvik通过一组C核心库调用Linux内核的功能,同时基于Dalvik向上提供了一个 功能完备的SDK
为了能充分利用已有的基础,Android SDK尽量与Java SE保持一致,这使得 Android应用的开发与普通Java应用程序的开发高度类似
2021/10/19
第1章 Android基础入门

Android系统的手机软件开发

Android系统的手机软件开发

28 •电子技术与软件工程 Electronic Technology & Software Engineering软件开发• Software Development【关键词】Android 系统 手机软件 应用程序开发Android 企业前身是高科技企业,仅在成立22个月后被Google 并购,随后,逐渐推行开展了包括短信、手机检索、全球定位等服务业务,而在2007年11月5日,正式公布这项操作系统。

Android 系统一经问世便由于极其强大的功能,受到广大公众的欢迎。

其优势在于拥有功能强大的API 、出色的文档、流畅的操作界面以及强劲的模拟运行应用程序功能,此外,Android 系统对于手机软件开发方面提供了良好的空间,使其能够开发出满足客户需求的软件。

1 Android系统的开发技术Android 系统的用于软件开发的技术非常多,主要包括以下几种:1.1 JavaJava 是Android 系统用于软件开发的基础语言,其浓缩了C++语言的众多优势,而且在难度上,比C++语言更为简练,具有安全、简单、独立以及动态等特点,在Android 系统开发过程中,占据非常重要的地位。

1.2 Web ServiceWeb Service 是一种用于开发分布式,能够将运行于不同终端的软件进行信息互换的应用程序。

1.3 XMLXML 技术在Android 系统软件开发中能够通过可扩展标记进行数据交换、传递的程序语言。

1.4 LinuxLinux 指令能够通过对开发软件下达一系Android 系统的手机软件开发文/张洪龙列指令,来达到驱动Android 系统运行目的的功能性语言。

1.5 SocketSocket 通信能够通过协议建立一个软件客户端与软件开发服务器之间的连接,从而达到信息传输的目的,这种连接存在两向性。

2 Android系统的手机软件开发2.1 Android系统应用程序开发步骤Android 系统的应用程序开发过程极为繁琐,其中需要经历的过程如下:软件开发人员需要Android Frame work 来进行应用程序软件设计工作,在设计过程中,需要通过Java 语言对设计内容进行编写,再改变其文件性质,将其转化成为apk 格式的文件。

Android_SDK_安装及配置

Android_SDK_安装及配置

SDK 安装(Windows环境)
1. 准备以下文件
(1) 下载JDK /javase/downloads/index.jsp (2)下载Android SDK 下载地址:/android/download.html (3) 下载Eclipse 下载地址:/downloads/ 对于Eclipse来说,直接解压之后就可以使用。
SDK 安装(Ubuntu环境)
下面我们就以创建一个android 1.5的avd为例: $android create avd -n android-sdk-15 -t 2
Android 1.5 is a basic Android platform. Do you wish to create a custom hardware profile [no]yes Device ram size: The amount of physical RAM on the device, in megabytes. hw.ramSize [96]:128 Touch-screen support: Whether there is a touch screen or not on the device. hw.touchScreen [yes]:yes Track-ball support: Whether there is a trackball on the device. hw.trackBall [yes]:yes Keyboard support: Whether the device has a QWERTY keyboard. hw.keyboard [yes]:yes DPad support: Whether the device has DPad keys hw.dPad [yes]:yes GSM modem support: Whether there is a GSM modem in the device. hw.gsmModem [yes]:yes Camera support: Whether the device has a camera. hw.camera [no]: Camera support: Whether the device has a camera. hw.camera [no]:yes Maximum horizontal camera pixels hw.camera.maxHorizontalPixels [640]:854 Maximum vertical camera pixels hw.camera.maxVerticalPixels [480]:480 GPS support: Whether there is a GPS in the device. hw.gps [yes]:yes Battery support: Whether the device can run on a battery. hw.battery [yes]:yes Accelerometer: Whether there is an accelerometer in the device. hw.accelerometer [yes]:yes Audio recording support: Whether the device can record audio hw.audioInput [yes]:yes Audio playback support: Whether the device can play audio hw.audioOutput [yes]:yes SD Card support: Whether the device supports insertion/removal of virtual SD Cards. hw.sdCard [yes]:yes Cache partition support: Whether we use a /cache partition on the device. disk.cachePartition [yes]:yes Cache partition size disk.cachePartition.size [66MB]:100MB Created AVD ''android-sdk-15'' based on Android 1.5 这样我们就创建了一个基于1.5的avd,上面的具体意思我想大家都能看懂,就不多说了。下在我们就可以测试一下android emulator了:

Android 各版本SDK的区别

Android 各版本SDK的区别

Android 各个版本SDK的区别---转载Android 1.5 API变更概要:UI framework· Framework for easier background/UI thread interaction·新SlidingDrawer 组件·新HorizontalScrollview 组件AppWidget framework·一些关于创建桌面AppWidget 的API.·提供根据自定义的内容创建LiveFolders的APIMedia framework·原声录音和回放APIs·交互式的MIDI 回放引擎·开发者使用的视频录像API (3GP format).·视频相片分享Intents·媒体搜索IntentInput Method framework·输入法服务framework·文本预测引擎·提供具有下载能力的IME给使用者Application-defined hardware requirements应用可定义硬件需求,应用程序可以定义说明此程序需要什么硬件需求.比如是否需要物理键盘或者轨迹球.Speech recognition framework·支持语音识别库.Miscellaneous API additions· LocationManager -应用可以接收到位置改变的信息.· WebView - 触摸start/end/move/cancel DOM 事件的支持·重建Sensor Manager APIs· GLSurfaceView - 创建OpenGL 应用更加方便的framework .·软件升级安装成功的Broadcast Intent - 更加平和优秀的软件升级体验Android 1.6 API变更概要:UI framework·新的类android.view.animation 控制动画行为:o AnticipateInterpolatoro AnticipateOvershootInterpolatoro BounceInterpolatoro OvershootInterpolator·新的XML 属性android onClick ,从一个layout文件描述一个view的View.OnClickListener.·对不同分辨率的屏幕的新的支持. 对于Bitmap和Canvas会执行有针对性的缩放行为.该框架会根据屏幕分辨率和其他内容自动缩放bitmap等.要在你的应用中使用Android 1.6包含的API的话你必须要设置"4"属性在manifest的元素中Search framework·应用程序现在可以公开的有关内容,作为建议放入快速搜索框,新的设备范围内的搜索功能,是可从主屏幕搜索。

Android 10 功能和 API

Android 10 功能和 API

Android 10 功能和 APIAndroid 10 为用户和开发者引入了强大的功能。

本文重点介绍面向开发者的功能。

要了解 API,请阅读API 差异报告或访问Android API 参考文档,查找“在API 级别 29 添加”的 API。

此外,请务必查阅 Android 10 行为变更(针对以 API 级别 29 为目标的应用和所有应用)以及隐私权变更,以了解平台变更可能给您的应用带来哪些方面的影响。

安全增强功能Android 10 引入了若干安全功能,详见以下各节摘要说明。

改进了生物识别身份验证对话框Android 10 对生物识别身份验证支持进行了以下改进:∙添加了针对生物识别身份验证功能的检查。

∙提供了一种回退机制,如果用户无法使用其生物识别输入设备进行身份验证,则可以使用设备 PIN 码、图案或密码来进行身份验证。

∙提供了一个提示,以告知系统在用户使用隐式生物识别模式完成身份验证后无需要求用户进行确认。

例如,您可以告知系统,在用户使用人脸识别身份验证完成身份验证后无需进一步确认。

直接从 APK 运行嵌入式 DEX 代码从 Android 10 开始,您可以告知平台直接从应用的 APK 文件中运行嵌入式DEX 代码。

如果攻击者设法篡改了设备上本地编译的代码,此选项有助于防止此类攻击。

如需了解详情,请参阅直接从 APK 运行嵌入式 DEX 代码。

TLS 1.3 支持Android 10 增加了对TLS 1.3的支持。

TLS 1.3 是 TLS 标准的主要修订版本,它提升了性能和安全性。

我们的基准测试数据表明,与 TLS 1.2 相比,使用 TLS 1.3 可以将建立安全连接的速度提高 40%。

如需详细了解我们的 TLS 1.3 实现,请参阅“针对所有应用的行为变更”页面内的“TLS”部分。

公共 Conscrypt API从 Android 10 开始,Conscrypt 安全提供程序包含适用于 TLS 功能的公共API。

idea下Android各目录所代表的含义介绍

idea下Android各目录所代表的含义介绍

idea下Android各⽬录所代表的含义介绍1.Project模式结构模式1、.gradle和.idea这两个⽬录下都是AndroidStudio⾃动⽣成的⽂件。

2、app项⽬中的代码、资源等内容⼏乎都是放置在这个⽬录下3、build这个⽬录包含了⼀些在编译时⾃动⽣成的⽂件。

4、gitignore这个⽂件是⽤来将制定的⽬录或⽂件排除在版本控制之外的。

5、build.gradle这是项⽬全局的gradle构造脚本6、gradle.properties这是项⽬全局的gradle配置⽂件7、gradlew和gradlew.bat这两个⽂件是⽤来在命令⾏界⾯中执⾏gradle命令的,gralew(Linux或Mac),gradlew.bat(Windows)2.App⽬录下的结构模式1、Build这个⽬录包含了⼀些在编译时⾃动⽣成的⽂件2、libs如果项⽬中使⽤到第三⽅的Jar包,就需要把这些jar包放在libs⽬录下3、androidText项⽬⾃动化测试4、java放置JAVA5、res图⽚、布局、字符串等资源6、androidManifest.xmlAndroid的配置⽂件7、test⾃动化测试的另⼀种⽅式3.res⽬录下的结构模式1、drawabledrawable⽂件夹⼀般不放置图⽚资源,存放⼀些动画⽂件、选择器⽂件、图形配置⽂件,drawable-mdip/hdip/xhdip⽂件夹放置图⽚资源2、drawable-v24当我们放⼊图⽚在drawable-v24⽂件夹时,在该⽂件夹引⽤该图⽚时会导致模拟器⽆法运⾏。

图⽚资源放到drawable-v24⾥⾯,导致7.0以下不能找到图⽚。

不同的drawable⽂件夹⽤于为设备兼容性和不同的Android版本提供不同的屏幕密度。

同理mipmap-anydpi-v26 API 26(安卓8.0)也是⼀样的道理,注意不同的⽂件对应的不同的版本。

3、layout存放所有的布局⽂件,主要是⽤于排列不同的显⽰组件,在Android程序中要读取此配置。

basic4android+开发教程

basic4android+开发教程

basic4android 开发教程翻译(一)建立模拟器和第一个Hello worlrd程序如果你还没有安装Basic4android和Java SDK,请先参照后面的链接里面的安装和配置方法:/forum/basic...droid-sdk.html在这个教程里面,我们将建立一个新的AVD (Android Virtual Device)并生成模拟器实例. 然后我们将建立一个简单的程序,这个程序将显示一个简单的信息框,并写一个信息到日志里.你也可以通过IDE 连接到一个真正的设备上:使用ADB连接你的设备使用B4A-Bridge连接你的设备常见的问题解决列在在本教程的后面. 如果你碰见的问题没在列表或者无法解决的话, 请与*********************联系建立新的AVD- 运行Basic4android.- 选择Tools 菜单- Run AVD Manager.稍等几秒种.- 不同版本和配置的SDK Manager 可能显示不太一样. 你需要选择Tools - Manage AVDs.- AVD Manager 就会显示如下:- 选择New 并填写类似下图的相应的字段(建议选择HVGA) :- 点击Create AVD.- 你可以建立多个AVD.每个可以具有不同的分辨率,也可以对应不同的API 版本(首先你需要安装额外的平台).- 现在点Start来启动模拟器- 你会看见好几个窗口弹出和消失,这个是正常情况. - 模拟器开始启动:等待... 第一次需要好几分钟才能等到模拟器准备好. 当看见下面屏幕时说明模拟器准备好了:你也可能会看到下面的屏幕,这是锁屏界面:把开锁图标拽到右面来解锁设备.没有必要每次分发程序时都重启模拟器. 模拟器一直在保持运行状态.如果你对Android不太熟悉,你可以先使用模拟器. 按中间的小方块按钮进入应用程序页面.疑难解答: 如果碰见类似下面的错误信息:invalid command-line parameter: Files\Android\android-sdk\tools/emulator-arm.exe.Hint: use '@foo' to launch a virtual device named 'foo'.那你就需要重新安装Android SDK到一个没有空格的目录,例如c:\android.编写第一个Basic4android 程序- 由于这是一个新程序,我们需要先需要通过选择File - Save来设置保存位置.强烈建议将每一个工程保存到自己的目录下.- 新建一个目录: "Hello world", 打开目录并把程序保存为"Hello world".- 在Sub Activity_Create里面输入下面代码:Code:Sub Activity_Create(FirstTime As Boolean)Log("Hello world!")Msgbox("Hello world! ","First program")End Sub- 按F5 编译并发布你的程序到模拟器上.将会出现包对话框(空白的):每一个Android 应用使用一个唯一的包名来标识这是一个使用逗点分割的合成字符串.这个字符串至少应该包括两部分.你不能安装使用同一个包名的两个不同应用程序到一个设备. 你可以使用tools菜单随时来改变包名.- 输入包名.- 下一步,会让你输入应用的标签.这个就是用户看到的应用名称.你的程序现在就被编译好并安装到模拟器上:模拟器比真实设备慢得多.由于安装非常快,在很多情况下直接在真实设备上工作更方便.你可以随时重新发布你的程序. 并不需要关闭模拟器上正在运行的程序.使用LogCat跟踪日志Android 设备保留一个内部缓冲来存储日志信息. 使用这些信息可以很方便的调试程序. 你可以切换到LogCat 面板并按connect来查看日志:当我们运行两次这个程序后,就可以看见上面的屏幕快照里面有两个"Hello world!"信息.取消"Filter"勾选就会显示所有的信息(不仅仅是你程序的信息).Hello world常见问题- "emulator: ERROR: no search paths found in this AVD's configurationweird, the AVD's config.ini file is malformed. Try re-creating it."当你的windows 用户名含有非ASCII字符时就会出现这个问题. 因为Android SDK 寻找对应目录失败.解决方法是建立一个目录,并命名为: c:\android,然后增加一个ANDROID_SDK_HOME的环境变量,并设置其值为c:\android.- "invalid command-line parameter: Files\Android\android-sdk\tools/emulator-arm.exe.Hint: use '@foo' to launch a virtual device named 'foo'."这个错误是因为Android SDK被安装到带有空格的目录.通过复制SDK到C:\Android并更新配置路径来解决这个问题.- "javac: target release 1.5 conflicts with default source release 1.7" -当前Basic4android 需要Java 6来运行.并不支持Java 7. 但是在同一个计算机可以同时安装这两个版本.basic4android 开发教程翻译(二)可视化设计与猜数字程序要学习本教程,请先参考下面的教程:安装Basic4android 和Android SDKHello world - 安装Android 模拟器在这个教程里面我们要使用设计器来建立layout. 这个layout包括一个文本框和一个按钮.用户需要猜一个随机的数字. 用户在文本框里面输入数字并通过点按钮提交猜的数字.然后系统会通过"toast"信息来给用户提示其输入的数字比系统选择的数字大还是小.- 建立一个新工程并保存它.-选择菜单来打开设计器.设计器有两部分组成.一部分是"控制面板", "控制面板"是IDE 的一部分,它包含所有的属性和选项:另外一部分是运行在模拟器上的"可视"元件:正如其名,可视化面板可以显示layout,并允许你移动和改变views的大小.在可视化面板上改变layout 的话,会同时改变控制面板上的保存的值.由于所有的数据都保存在控制面板上,因此我们不用担心模拟器崩溃或者被关掉.当你下一次连接上时,layout 会自动重新显示.首先要连上设备.请点Tools - Connect.这一步需要几秒钟时间. 请注意IDE 会一直保持这个连接直到IDE 被关闭,关闭设计器并不断开这个连接.使用Add View menu 菜单来增加一个Button, 一个EditText 和一个Label.并按下图来设置相应的属性和位置:改变Activity的Drawable 属性为GradientDrawable来取得过渡色效果.小贴士: 当你在小的显示器工作时,你会发现点了"Top Most"(在控制面板右上角)勾选后会感觉非常方便.这样控制面板就会显示在最上方而不会被模拟器挡住.保存这个layout,并命名为Layout1.layout是一个非常重要的概念,因为其在你的代码和设计之间建立了完全的分界.layout被保存成一个文件,扩展名为".bal".每个工程可以有好几个这样的文件,除非你显式的载入一个layout 文件,否则不会在你工程中造成任何影响.一旦你保存了一个layout, 它会自动的被加入"File manager". 你可以在IDE右面的"Files"面板里面看见它.我们将要使用button的click 事件.每个view 都有一个EventName的值. 在设计器里面是属性, 当在程序中添加view 时,会作为一个参数传递到Initialize过程中.为了使用一个事件,你应该使用下面的格式写一个子程序(其实很简单):Sub <EventName>_<Event> (event parameters).在设计器里,EventName属性默认为view的名字.如果我们要通过按钮的EventName的值来调用按钮的click 的事件的话,我们应该按照下面的格式写:Sub Button1_ClickSo here is the complete code:Code:Sub Process_GlobalsEnd SubSub GlobalsDim MyNumber As IntDim EditText1 As EditText 'will hold a reference to the view added by the designerEnd SubSub Activity_Create(FirstTime As Boolean)Activity.LoadLayout("Layout1") 'Load the layout file.MyNumber = Rnd(1, 100) 'Choose a random number between 1 to 99End SubSub Button1_ClickIf EditText1.Text > MyNumber ThenToastMessageShow("My number is smaller.", False)Else If EditText1.Text < MyNumber ThenToastMessageShow("My number is larger.", False)ElseToastMessageShow("Well done.", True)End IfEditText1.SelectAllEnd Sub一些注意事项:- 每个activity 模块都有一个Activity 对象,你可以使用这个对象来访问activity.- Activity.LoadLayout 可以用来载入layout文件.- 还有其他views也可以载入layout 文件. 例如Panel 和TabHost. 对于TabHost,每个页面都可以通过载入layout文件来建立.- 为了访问在设计器里面添加的views, 我们需要在Sub Globals里面定义它们.- ToastMessageShow 用来显示一段短的信息, 并且会在一小段时间后消失.在这里使用toast message其实不是非常合适,因为有时当软键盘打开时会使其无法提示.写事件子程序的小贴士:在IDE里, 先写Sub,然后按空格键. 你会看到小的提示"press tab to insert event declaration".再按tab键, 选择对象类别并选择事件.现在你做的就是写需要的事件名和按回车.支持多种屏幕分辨率和方向每个layout文件可以包含一系列layout变体.每个layout变体保存views的不同的位置和大小的值.例如, 你改变任何view的文本的话,所有的变体的会自动改变. 然而当你改变view 的位置的话,只会影响当前变体的值.请注意,如果需要的话,按比例缩放会自动进行.这意味着当我们运行在一个高分辨率设备的时候,layout会自动缩放的.然而你可以为不同的缩放选择建立不同的变体.当你载入一个layout文件时,最匹配设备的那个变体将会被载入.一般你需要两个变体:- 320 x 480, scale = 1 (160 dpi). 这个是竖向的默认的比例.- 480 x 320, scale = 1 (160 dpi). 横向的默认比例.好, 重新打开设计器.载入Layout1 文件.选择"New Variant" 并选择480 x 320 (第二个选项).选择模拟器,并通过按Ctrl + F11改变模拟器的方向.请注意,设备的layout详情会在变体列表下面出现.请如下图改变layout:你可以改变当前所选的变体,然后看看它是如何影响可视的layout.保存这个layout并运行这个程序.现在改变模拟器的方向,看看layout是如何对应改变的.每次当方向改变的时候,Android 就会销毁老的activity并建立新的activity. 每次Activity.LoadLayout将会被再次调用. 因此非常不幸,每次要猜的数会被重新选择. 当然这个会很简单的改正... 但这不是本教程要做的.工程文件在附件下载.这个教程的最后小贴士:- IDE的Files菜单下面包括一个"Export as zip"选项. 用来生成一个包括所有需要文件的zip文件.文件下载地址: /android/fil...ssMyNumber.zipbasic4android 开发教程翻译(三)IDE 小贴士basic4android 的IDE 功能强大,它帮助你专注于写代码和建立你的应用.下面列出一些不容易发现的特色:- Ctrl + Space = 自动完成按Ctrl + Space 激活自动完成功能,它会把得到的关键字,变量,模块,方法,子程,属性,字段等以列表显示出来. 并且在很多时候会列出这些项目的描述.在写了一些字母后按Ctrl + Space通常会自动出现以这些字母开头的项目.- 工具提示信息- 当写方法的参数时,工具提示会显示方法的定义和描述.工具提示有时可能会挡住你需要的重要代码,你可以按ESC 隐藏它.你也可以按CTRL 键将其变为半透明,然后再按CTRL恢复回去.LogCat - LogCat面板里面显示设备内置的日志. 这些日志用来做调试非常方便. 你可以使用Log关键字来记录这些信息.为了开始显示这些日志,你需要按Connect 按钮.可以过滤这些日志,以便你只看到Basic4android和你的应用生成的日志.注意: 如果你连接的好几个设备,你可以通过按Connect按钮来替换到不同的设备.设计器生成成员工具- 这个工具让你生成设计器里面的views 的定义和事件的代码. 请注意: 你只需要定义那些要在代码里面使用的views.如果你选了已经存在的项目不会有什么影响的(不会生成重复的代码).可以通过设计器窗口选择Tools - Generate Members来显示这个窗口.后台编译- 按Alt + 3可以编译和安装你的程序,同时保证IDE 可以正常反应你的操作.屏幕下的状态条会显示处理过程的进度和什么时候安装完成.当过程失败时,会有一个短的声音提醒你. 在这种情况下,你就必须使用正常编译(F5),以便查看错误信息(取决于什么类型的错误).操作多个连接的设备- 在很多情况下,你可能同时连接好几个设备. 对于任何操作,都会显示一个连接设备的列表,你可以在列表里面选择你的目标设备.如果你是用后台编译的话,就会使用再次最后的一个设备. 这个通常比每次在前台选择目标设备方便的多.设计器- 复制- 通过选中view 并通过选择Tools - Duplicate View,你可以复制任何一个view.如果这个view 有子views的话,同时会把子views也复制上.导出成zip - 导出成zip 选项可以建立一个包含所有工程需要文件的zip 文件. 当你需要备份和与别人共享工程时,这个功能就非常有用.这个功能位于Files菜单下.清理工程/ 清理无用文件- 清理工程删除所有的生成的文件. 这些文件是在编译过程中生成的.清理无用文件是删除位于Files目录下没有被工程使用的文件(它不会删除任何工程layou t 引用的文件).在删除前会有一个无用文件的列表(这让你可以取消这个操作).运行AVD Manager - AVD manager 允许你建立和启动模拟器. 这个菜单打来manager.请注意,当启动一个模拟器后,不需要保持AVD manager一直打开,你可以关闭它.两个附加提示:1.事件子程原型-有一个特殊的自动完成特性可以帮助你写事件子程原型.开始写Sub并跟一个空格:就会出现下图.按Tab 键:就会显示一个当前所有的类型的列表(它们至少有一个事件). 选择需要的类型并按回车.再选择特定的事件.类似下面的代码就会被生成:EventName字符串将被选中, 改变它为对象的"EventName"值,然后按回车. 就这么简单.2. 设计器top most属性- 设计器有一个"top most"勾选框,选中后可以保持设计器成为最前面的窗体.这在屏幕比较小时,设计器和模拟器要同时工作时比较方便.调试数据- 默认情况下,Basic4android编译器会加入一些调试数据到你的代码.当发生错误时,这些数据就非常有用. 它可以使程序显示出错的原始代码行.这些数据要使用一些空间并可能影响运行性能,但是一般影响都不会太大.你可以通过Project菜单- 取消Include Debug Information的选中来去掉这些数据.basic4android 开发教程翻译(四)调试应用程序这个教程说明在Basic4android v1.50 后加入的新的调试功能及其他相关的工具.在Project菜单下有一个叫Attach Debugger的新选项.如果这个选项是选上的话,那么编译的的代码就会包含调试代码.调试代码允许IDE 与程序建立连接并检查它的运行.当程序运行时,首先会等10秒钟与IDE 建立连接. 通常IDE 会很快连接上的. 然而当你手工从电话上运行这个程序时,就会看到这个等待.编译的APK文件会以_DEBUG.apk后缀保存.由于这个文件包含调试信息,因此一般不应该分发这个apk文件,其在实际运行中会造成巨大的拖延.这个菜单下的另外的一个选项是Include Debug Information.这个选项当Attach Debugger option被选上的话不会有任何效果.当Attach Debugger没有被选上的话(这意味着调试代码没有被加入)这个选项决定原始的B4A 代码是否被加到编译的APK文件中. 增加B4A代码有特殊的用处.当出错时,错误信息会包含原始的B4A 代码行,而不仅仅是Java行.(译者注: b4a 首先把basci 语法转换成Java 代码,然后编译的)当我们把Attach Debugger选上然后运行程序时,IDE 将屏幕的下方打开一个调试模块:调试模块包含三部分: subs stack, global variables and local variables.当程序暂停时这些部分显示相应的数据.你也可以把鼠标放到一个变量名上来查看它的值.在subs stack 部分上面有四个按钮,分别对应继续执行,执行到下一行,暂停执行和停止程序.后面还有一个图标告诉我们调试器是否连接上.双击这个图标可以不用关闭程序就断开调试器.同时还有一个Debug菜单,里面包括了Step Over (执行下一行并在内部的子程序调用时不中断) 和Step Out (运行完当前子程后中断) 项.当调试模块出现时,代码编辑器会保持只读.断点- 你可以把代码里面的一行作为断点.通过点击代码左面灰色区域来设置一个断点.当程序运行到断点时会暂停,这时你就可以查看当前的运行状态了.日志- 右边面板上的Logs页面是非常有用的. 它显示元件生存循环中的相关信息, 它也可以显示使用Log 关键字输出的信息. 你可以通过按Connect按钮来连接设备的日志.请注意,有一个Filter 的勾选框.当选上时,你只看到与你程序相关的信息.当没有被选上的时候,你会看到运行系统上的所有信息.当你碰到一个错误却在日志里面没有看见任何相关信息时,可以试着去掉filter 选中来查找一下错误信息.由于这个日志是设备来维护的,因此当你连接上一个设备时,你也会看到以前的信息.关于调试器的注意事项:- 在下面子程中的断点会被忽略: Globals, Process_Globals and Activity_Pause.- 服务- 调用StartService 后面出现的断点会被忽略. 在Service_Create 和Service_Start里设置的断点会暂停程序一段时间(大约12 秒).这是防止OS 杀掉这个服务.- 当程序暂停时,触发的事件将被执行.在事件中的断点会被忽略(仅仅发生在程序已经被暂停).- 从设备传送到IDE 的数据有大小限制. 太长的字符串会被截断.basic4android 开发教程翻译(五)Android进程及activitys 生存周期简而言之:每个Basic4android 程序在它自己的进程中运行.一个进程拥有一个主线程,这个主线程也叫做UI 线程,它会一直运行到进程结束.一个进程也可以有好几个线程,这些线程用来做一些后台工作.当用户启动一个应用时,一个进程就开始了工作, 假设其并没有已经在后台运行.进程的结束是不确定的. 有时可能发生在用户或者系统关闭掉所有的activities后.假设你有一个activity,当用户按了返回键,这个activity被关闭了. 以后当电话的内存不够时这个进程就会退出了(最后肯定会出现这种情况的).如果用户再次运行这个程序时,而这个进程并没有被杀掉的话,这个进程就会被再次使用.一个Basic4android应用是由一个或者多个activities组成. Android 支持其他几个"main"元件.这些以后将在以后版本的Basic4android中加入.Activities有点类似wondows 的窗体.主要的差别是当一个activity不在前台时,为了节省内存, 这个activity可能会被杀掉. 通常在activity消失前,你需要保存它的状态. 要么保存到一个持久的存储上,要么保存到它的进程的内存里.以便以后当需要这个activity时,重新建立它.另一个需要小心的地方是当设备的主要配置发生变化时. 最常见情况是方向的变化(用户旋转了设备). 当这些变化发生时,当前的activities会被销毁和重建. 现在当我们建立activity时,我们可以根据新的配置来建立(例如, 我们现在知道新的屏幕尺寸).我们如何处理这些呢?当你建立一个新的activity时,你可以使用下面的代码模版:Code:Sub Process_Globals'These global variables will be declared once when the application starts.'These variables can be accessed from all modules.End SubSub Globals'These global variables will be redeclared each time the activity is created.'These variables can only be accessed from this module.End SubSub Activity_Create(FirstTime As Boolean)End SubSub Activity_ResumeEnd SubSub Activity_Pause (UserClosed As Boolean)End Sub变量可以是全局的和局部的. 局部变量是定义在子程里面而不是定义在Process_Globals 和Globals里.局部变量被限制在本子程内. 子程一旦结束,这些变量就不再存在.全局变量可以被所有的子程访问.有两种类型的全局变量.进程变量和activity变量.进程变量- 这些变量与进程的生存期一致.你应该把把这些变量定义到sub Process_Globals里面.当进程开始时,这个子程被调用一次(不仅仅是第一个activitie,对所有的activities都一样).这些变量应该仅仅是"公开"变量. 这意味着它们也可以被其它模块访问.然而,不是所有类型的对象都可以被定义为进程变量.例如,所有的views不能被定义成进程变量.主要原因是我们不想保留一个可能随着activity销毁而被销毁的引用对象.换句话说,一旦activity被销毁了, activity上所有的views 也会同时被销毁.如果我们保留着一个view的引用,垃圾收集器就不能释放这些资源,就会造成内存泄漏.编译器强制执行这个要求.Activity变量- 这些变量包含在activity中.你应该在Sub Globals中定义这些变量.这些变量是"私有的"并且只能在当前activity模块中访问.所有的对象类型都可以被定义为activity变量.每次activity建立时, Sub Globals就会被调用(在Activity_Create之前).这些变量的生存期与这个activity一致.Sub Activity_Create (FirstTime As Boolean)当activity建立后,就会调用这个子程.当用户启动应用时,activity就会被建立, 当设备的配置发生变化时(用户转动设备),这个activity就会被销毁.另外,当这个activity 在后台时,为了释放内存,OS 也可能会决定销毁它.这个子程应该用来载入或者建立layout (当然也可以做其他用处).FirstTime 参数用来告诉我们是不是第一次建立这个activity. Firsttime相对于当前进程.你可以使用FirstTime来完成有关进程变量的各种初始化工作.例如,如果你需要读一个含有一个列表的文件,当FirstTime是True 的时候,你可以读取这个文件并将文件中的列表保存为进程变量.现在我们就可以知道这个列表在整个进程的生存期会存在,而不需要每次activity建立后都重新读取这个列表.总而言之, 你可以检查FirstTime是否为True,然后初始化进程变量.Sub Activity_Resume 和Sub Activity_Pause (UserClosed As Boolean)每次当activity从前台转换到后台时就会调用Activity_Pause子程.当activity 在前台时,但是配置发生变化时(这会导致activity暂停并被销毁), 也会调用Activity_Pause子程. Activity_Pause 是保存重要信息的最后的一个地方.一般有两种机制来让你保存activity状态.仅与当前应用有关的信息可以被保存到一个或多个进程变量中.其他信息应该保存到持久存储上(文件或者是数据库).例如,如果用户改变了一些设置,你应该在这里把这些改变保存到持久存储上. 否则这些变化可能会丢失.当Activity_Create完成后会立刻调用Activity_Resume.另外就是当继续一个暂停的activity也会调用它(被切换到后台的activity又被切换到前台).注意:当你打开一个不同的activity时(通过调用StartActivity),当前的进程首先被暂停,然后另外的activity将被建立(如果需要的话),然后当前进程会继续执行(总是这样).通过以上讨论, 每次当activity从前台切换到后台时Activity_Pause就会被调用. 这可能是以下原因造成的:1. 启动了一个不同的activity.2. Home键被按了.3. 配置改变事件被触发(例如方向发生变化).4. Backj键被按了.在1和2的情况下, activity将会被暂停,并被保存到内存中以便以后再次使用.在3的情况下, activity将会被暂停,销毁.然后再建立(并继续).在4的情况下, activity将会被暂停然后销毁. 按Back键类似与关闭activity. 在这种情况下,你没必要保存任何实例特定的信息(例如PacMan游戏中的pacman的位置).这中情况下,UserClosed 参数为true.其他情况下都是false. 请注意当你调用Activity.Finish时,它也是true. 这个方法暂停和销毁当前activity,和Back键类似.你可以使用UserClosed 参数来决定需要保存那些数据和重置任何相关的进程变量为初始化值(如果位置是进程变量的话,移动pacma n的位置到中间).处理UI状态的一个新模块请参考这里: /forum/basic...ngs-state.htmlbasic4android 开发教程翻译(六)使用B4A-Bridge连接你的设备到目前为止,我们在开发中有两种方法来测试应用.一种是通过Android 模拟器来测试.另外就是当你的设备支持ADB调试的话,可以直接连到真实设备上测试.Android模拟器相比真实设备慢得多(尤其是安装应用).因此大多情况下使用真实设备更方便.我个人也仅仅是在用可视化设计器时才使用模拟器.然而不是所有的设备都支持ADB调试.这就是为什么要使用B4A-Bridge工具的原因.B4A-Bridge由两个元件组成. 一个元件运行在实际设备上,另外一个是IDE 的一部分,后者可以连接到前者,并与实际设备通讯.连接是通过网络实现的(如果没有网络的话,B4A-Bridge 不能工作).一旦建立连接, B4A-Bridge支持所有的IDE 特性, 包括:安装应用,查看LogCat和可视化设计.Android 不允许一个应用悄悄的安装另外一个应用,因此当你使用B4A-Bridge运行你的应用时,会显示安装确认界面.开始使用B4A-Bridge1. 首先你需要把B4A-Bridge安装到你的设备上.你可以在这里下载B4A-Bridge: /android/files/b4a_bridge.apk.B4A-Bridge同样也可以在Android市场里面找到. 查找: B4A Bridge.请注意你需要允许系统可以从"未知源"安装应用. 这个可以通过系统设置里面更改.2. 在你的设备上运行B4A-Bridge.它会显示一个如下图的界面:状态就是: Waiting for connections(等待连接).3. 在IDE菜单里选择Tools - B4A Bridge - Connect.你需要输入真实设备屏幕上显示的IP地址.IDE 屏幕下方状态条会显示当前的状态:就这么简单.当B4A-Bridge被连接后,它首先检查设计器应用是否需要更新,如果需要更新的话,它会首先安装设计器应用. 除非你按了Stop键,B4A-Bridge会作为一个服务一直运行着.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

android-->包含应用平台和在定义应用程序所用到android系统功能的应用权限的资料文件类,android.accessibilityservice-->这个包中的类用于为无障碍服务的开发提供替代或增强的反馈给用户android.accounts-->android.animation-->这些类提供动画系统的功能特性,它允许使用任何类型的动画对象属性,int,float和16进制颜色值都是默认支持的,也可以通过自定义一个动画让告诉应用按你的设置去运行android.app-->封装好的Andorid全部应用程序模型类android.app.admin-->提供系统级的设备管理功能,允许您创建安全感知的应用程序用于android系统企业级别的设置,如可以让你的应用程序也能执行屏幕锁定,屏幕亮度调节、出厂设置等功能android.app.backup-->此包下的类包含了备份和修复应用程度功能的,如果用户清除设备上的数据或升级到一个新的系统,当应用程序在重新安装时可通过已启用的备份用于修复用户之前的数据android.appwidget-->此包下的类包含在创建一个应用小部件时所必需要组件,用户可将它嵌入在其他应用程序(如主屏幕),无需启动一个新的活动就可快速访问自身应用程序的数据和服务,android.bluetooth-->此包下的类提供手机蓝牙管理功能,例如搜索设备,连接设备,管理设备之间的数据的传输,android.content-->设备上的数据访问和发布。

android.content.pm-->此包下的类提供访问一个应用包的相应信息,信息内容包括:活动,权限,服务,应用签名,提供者,android.content.res-->此包下的类用于访问应用程序的资源,例如:原文件,颜色,图片,多媒体等,和一些可影响设备运行的重要配置的详细信息android.database-->此包下类的用于探索通过内容提供者返回的数据android.database.sqlite-->此包下类的包含SQLITE数据库管理类,用于一个应用程序去管理的它所拥有的私有的数据库android.drm-->此包下的用于管理DRM系统机制和控件DRM机制的插件的功能,DRM解释:DRM提供一套机制对用户使用手机上的媒体内容(如ringtong, mp3等)进行限制,如限制拷贝给第三方,限制使用次数或时限等,从而保护内容提供商的权利,android.gesture-->此包下的类用于创建,识别,加载,保存一个手势android.graphics-->此包下的类提供一些低级的绘图功具,例如:画布,颜色过滤,顶点坐标,和长方形以便于发开者的绘图直接处理在设备屏幕上,android.graphics.drawable.shapes-->此包下的类用于几何绘图android.hardware-->提供支持硬件功能的类,例如:照像机和其它传感器android.hardware.input-->b-->提供支持android系统设备的USB接口与外围设备的相连android.inputmethodservice-->输入法的基类android.location-->包括的类用于定义android地理位置和与此关系的服务android.media-->提供管理各种各样音频和视频接口的类android.media.audiofx-->提供管理多媒体框架中实现的音频效果的android.media.effect-->提供允许你运用各种图像和视频的视觉效果的类android.mtp-->提供的API让你直接连接照像机和其它设备与之互动,-->帮助连接网络权限,.http-->.nsd-->实时视频传输时采用的TCP协议,允许应用程序管理需求或多媒体交互式数据流。

.sip-->提供SIP协议功能权限,例如:创建和回应网络电话时所调用的SIP协议,.wifi-->提供设备在管理无线网络功能的权限.wifi.p2p-->提供通过WI-FI直接创建点对点连接的类.wifi.p2p.nsd-->没有解释android.nfc-->提供近场共享小负载数据功能,允许你在NFC tag和Android设备或者两个Android设备间共享小负载数据。

android.nfc.tech-->这些类提供了标签技术特点,任何类型标的签扫描android.opengl-->提供OpenGL ES静态接口和功能类android.os-->提供基本的操作系统服务,信息传递,和进程间的会话于设备上android.os.storage-->包含系统存储服务android.preference-->提供管理应用程序参数设置和实现参数设置界面的类android.provider-->内容提供者权限便利类android.renderscript-->RenderScript是一种3D运行时框架,其提供构造3D场景的API函数,同时为最大程度的优化性能,还支持平台无关的shade语言。

开发者不仅可以采用RenderScript技术来开发3D应用,还可以用来作特定的高性能数据处理。

android.sax-->android内置的一种XML解析方式,SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备android.security-->没有解释android.service.textservice-->创建你自己的拼写检查器服务。

这个框架管理着你自己的拼写检查器服务与文本输入域的交互android.service.wallpaper-->android.speech-->android.speech.tts-->android.telephony-->提供API用于监控基本的手机信息,如网络类型和连接状态,android.telephony.cdma-->提供便于利用CDMA特定的电话功能。

android.telephony.gsm-->GSM特定的电话功能支持类android.test-->单元测试支持类android.test.mock-->定义了方便测试用的测试类android.test.suitebuilder-->运行测试用例的TestRunner类android.text-->文字的设置android.text.format-->包含java.util 和java.text.之外的其它文本格式android.text.method-->监控键盘的输入和更换android.text.style-->文字显示风格的定义android.text.util-->文字的工具,如让文字具有E-Mail或是链接效果android.util-->android工具类,如日期,时间,数字格式的转换等等android.view-->用来处理屏幕布局与用户的互类android.view.accessibility-->android.view.animation-->提供用来处理补间动画android.view.inputmethod-->视图和输入法(如软键盘)之间的互动的框架类android.view.textservice-->android.webkit-->android系统内置浏览器android.widget-->此包包含绝大部分的UI控件dalvik.bytecode-->提供类周边的Dalvik字节码dalvik.system-->提供实用工具和系统信息类特定的Dalvik虚拟机。

java.awt.font-->java.beans-->java.io-->提供输入和输出设备的流,文件系统访问和系列化的手段。

ng-->在Android环境提供核心类。

ng.annotation-->定义接口和异常的注解必要支持。

ng.ref-->ng.reflect-->java.math-->提供任意精度的整数和小数-->提供网络相关的功能,如流和数据报套接字,互联网地址的处理,以及与HTTP 请求处理.java.nio-->提供缓冲,帮助处理数据。

java.nio.channels-->频道提供一种方式来连接到数据源,如文件,套接字或允许输入和/或其他结构的数据输出。

java.nio.channels.spi-->氧化镍渠道服务的提供者类。

java.nio.charset-->这个软件包提供字节之间,不同字符集的翻译服务。

java.nio.charset.spi-->服务提供者类的氧化镍字符集。

java.security-->这个包提供了所有的类和接口,构成了Java安全框架。

java.security.acl-->这个包提供的类和需要建立访问控制列表的接口。

java.security.cert-->这个包提供了所有的类和所有需要的生成,管理和验证的X.509证书的接口。

java.security.interfaces-->这个包提供了用于生成的接口:为RSA非对称加密使用的PKCS#1标准算法(1)键,使用数字签名算法的FIPS - 186指定(DSA)的(2)键,(3)键为一通用的椭圆曲线非对称加密算法。

java.security.spec-->这个包提供的类和需要指定用于加密和签名算法的密钥和参数的接口。

java.sql-->提供了访问基于SQL的数据库兼容的接口。

java.text--> java.text包允许脱钩,在从自然语言文字的应用。

java.util-->提供一组丰富的工具类。

java.util.concurrent-->常用的实用工具类并行编程有用java.util.concurrent.atomic-->一组类,支持无锁的线程安全的单变量编程小工具包。

java.util.concurrent.locks-->接口和类提供了一个锁定和等待条件框架,它不同于内置同步和监视器java.util.jar-->该java.jar包可以访问读取和编写Java归档文件,或JAR,文件。

相关文档
最新文档