Microsoft Word - 第3章.doc

Size: px
Start display at page:

Download "Microsoft Word - 第3章.doc"

Transcription

1 第 3 章 Android 应用程序剖析 用户要想编写出复杂的应用程序, 首先要对 Android 应用程序的构成及程序的内部执行流程有一个清晰的了解 本章通过对一个简单的应用程序的深入剖析, 使读者对 Android 应用程序的构成及执行流程有个清晰的了解 3.1 Android 应用程序目录结构 之前我们已经开发了一个项目名称为 HelloWorld 的 Android 应用程序, 也许你很疑惑, 好像什么都没做, 只是输入了几个名字, 点了几下鼠标, 应用程序就可以运行 这里面到底发生了什么? 本节将对 HelloWorld 程序的目录结构进行详细分析 图 3.1 所示是 Hello World 在 Eclipse 中的目录层次结构, 下面对其中主要的目录极其文件进行介绍 图 3.1 项目目录结构 项目的根下有几个重要的文件 ( 夹 ), 下面详细讲解每个文件夹的功能和作用 src/ 专门存放编写的 java 源代码的包 android 2.1/ 存放 Android 自身的 jar 包 gen/ 该目录不用开发人员维护, 但又非常重要的目录, 该目录用来存放由 Android 开发工具所生成的目录, 该目录下的所有文件都不是用户创建的, 而是由 ADT 自动生成的, 该目录下的 R.java 文件非常重要, 后面会详细介绍 assets/ 该目录用来存放应用中用到的类似于视频文件 MP3 的一些媒体文件 res/ 是 resource 的缩写, 为资源目录, 该目录可以存放一些图标 界面文件 应

2 第 3 章 Android 应用程序剖析 21 用中用到的文字信息 AndroidManifest.xml 该文件是系 Android 项目的系统清单文件, 它用于控制 Android 应用的名称 图标 访问权限等整体属性 default.properties 该文件一般也不需要手工去更改, 文件存放了项目对应的一些环境配置, 如应用要求运行的最低 Android 版本 资源被编译到最终的 APK 文件里 Android 创建了一个被称为 R 的类, 这样在 Java 代码中可以通过它关联到对应的资源文件 接下来对 res/ 的子目录做更加详细的说明 (1)res/drawable res/ 目录下有三个 dawable 文件夹, 区别只是将图标按分辨率高低来放入不同的目录, 其中, drawable-hdpi 用来存放高分辨率的图标, drawable-mdpi 用来存放中等分辨率的图标, drawable-ldpi 用来存放低分辨率的图标 程序运行时可以根据手机分辨率的高低选取相应目录下的图标 不过, 如果不想准备过多图片, 那么也可以只准备一张图标将其放入三个目录的任何一个中去 (2)res/values 文件夹 1 strings.xml 用来定义字符串和数值, 在 Activity 中使用 getresources().getstring(resourceid) 或 getresources().gettext(resourceid) 取得资源 打开 helloworld 项目的 string.xml, 可以看到如下内容 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">helloworld</string> <string name="hello_world">hello world!</string> <string name="menu_settings">settings</string> </resources> 每个 string 标签声明了一个字符串,name 属性指定其引用名 为什么需要把应用中出现的文字单独放在 string.xml 文件中呢? 原因有如下两点 一是为了国际化,Android 建议将在屏幕上显示的文字定义在 strings.xml 中, 如果今后需要进行国际化, 如开发的应用本来是面向国内用户的, 当然要在屏幕上使用中文, 而如今要让应用走向世界, 打入日本市场, 当然需要在手机屏幕上显示日语, 如果没有把文字信息定义在 strings.xml 中, 就需要修改程序内容了 但当我们把所有屏幕上出现的文字信息都集中存放在 strings.xml 文件之后, 只需要再提供一个 strings.xml 文件, 把里面的汉字信息都修改为日语, 再运行程序时,Android 操作系统会根据用户手机的语言环境和国家来自动选择相应的 strings.xml 文件, 这时手机界面就会显示出日语, 这样做国际化非常方便 二是为了减少应用的体积, 降低数据冗余 假设在应用中要使用 我们一直在努力 这段文字 次, 如果不将 我们一直在努力 定义在 strings.xml 文件中, 而是在每次使用时直接写上这几个字, 这样下来程序中将有 个字, 这 个字占 136KB 的

3 22 精通 Android 应用开发 空间 而由于手机的资源有限, 其 CPU 的处理能力及内存是非常有限的,136KB 对手机程序来说是个不小的空间, 在做手机应用时一定要记住 能省内存就省内存, 而如果将这几个字定义在 strings.xml 中, 在每次使用到的地方通过 Resources 类来引用该文字, 只占用了 14B, 对降低应用体积效果非常有效 当然我们在开发时并不会用到这么多的文字信息, 但是 不以善小而不为, 不以恶小而为之, 作为手机应用开发人员, 一定要养成良好的编程习惯 2 styles.xml 用来定义样式 打开本项目的 style.xml 文件, 内容如下 <resources> <!-- Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vxx/styles.xml on newer devices. --> <style name="appbasetheme" parent="android:theme.light"> <!-- Theme customizations available in newer API levels can go in res/values-vxx/styles.xml, while customizations related to backward-compatibility can go here. --> </style> <!-- Application theme. --> <style name="apptheme" parent="appbasetheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> </style> </resources> 注意 :Android 中的资源文件不要以数字作为文件名, 这样会导致错误 (3)res/layout 目录下的布局文件本例中的布局文件是 ADT 默认自动创建的 activity_main.xml 文件 可以用两种方式 Graphical Layout 者 xml 清单显示其中的内容, 在 Eclipse 中, 这两种查看方式可以随意切换 双击打开此 xml 文件, 内容如下 <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mainactivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"

4 第 3 章 Android 应用程序剖析 23 android:layout_centerhorizontal="true" android:layout_centervertical="true" android:text="@string/hello_world" /> </RelativeLayout> 与在网页中布局中使用 HTML 文件相同,Android 在 XML 文件中使用 XML 元素来设定屏幕布局 每个文件包含整个屏幕或部分屏幕, 被编译进一个视图资源, 可以被传递给 Activity.setContentView 或被其他布局文件引用 文件保存在工程的 res/layout/ 目录下, 它被 Android 资源编辑器编译 gen/ 目录下的 R.java 文件详解 R.java 文件中默认有 attr drawable layout string 等四个静态内部类, 每个静态内部类分别对应一种资源, 如 layout 静态内部类对应 layout 中的界面文件, 其中, 每个静态内部类中的静态常量分别定义一条资源标识符, 如 public static final int activity_ main=0x7f030000; 对应的是 layout 目录下的 activity_main.xml 文件 具体的对应关系, 如图 3.2 所示 图 3.2 R.java 中的资源的对应关系图 现在已经理解了 R.java 文件中内容的来源, 也即当开发者在 res/ 目录中任何一个子目录中添加相应类型的文件后,ADT 会在 R.java 文件中相应的匿名内部类当中自动生成一条静态 int 类型的常量, 对添加的文件进行索引 如果在 layout 目录下再添加一个新的界面, 那么在 public static final class layout 中也会添加相应的静态 int 常量 相反, 在 res 目录下删除任何一个文件, 其在 R.java 中对应的记录会被 ADT 自动删除 再比如说, 在

5 24 精通 Android 应用开发 strings.xml 添加一条记录, 在 R.java 的 string 内部类中也会自动增加一条记录 R.java 文件会给开发程序带来很大的方便, 如在程序中使用 public static final int ic_launcher= 0x7f020000; 就可以找到其对应的 ic_launcher 图片 R.java 文件除了有自动标识资源的 索引 功能外, 还有另一个主要的功能, 当 re s 目录中的某个资源在应用中没有被使用到, 在该应用被编译时系统就不会把对应的资源编译到该应用的 APK 包中, 这样可以节省 Android 手机的资源 组件标识符 通过对 R.java 文件的介绍, 读者已经了解了 R 文件的索引作用, 它可以检索到应用中需要使用的资源 下面介绍如何通过 R.java 文件来引用到所需要的资源 (1) 在 Java 程序当中, 可以按照 Java 的语法来引用 1 R.resource_type.resource_name 注意,resource_name 不需要文件的后缀名 比如, 上面的 ic_launcher.png 文件的资源标识符可以通过如下方式获取 R.drawable.ic_launcher 2 android.r.resource_type.resource_name Android 系统本身自带了很多资源, 用户也可以进行引用, 只是需要在前面加上 android. 以声明该资源来自 Android 系统 (2) 在 XML 文件中引用资源的语法如下 : 使用自己包下的资源可以省略 package 在 xml 文件中, 如 activity_main.xml 以及 AndroidMainfest.xml ic_launcher 的方式获取 代表 R.java 类, drawable 代表 R.java 中的静态内部类 drawable, /ic_launcher 代表静态内部类 drawable 中的静态属性 ic_launcher 该属性可以指向 res 目录下的 drawable-*dpi 中的 ic_launcher.png 图标 其他类型的文件类似, 凡是在 R Static_inner _ classes _name / resourse_name 2 如果访问的是 Android 系统中带的文件, 则要添上包名 android: 如 android:textcolor="@android:color/red" 表达式顺便说一下, 在布局文件当中我们需要为一些组件添加 Id 属性作为标示, 其中, + 表示在 R.java 的名为 id 的内部类中添加一条记录 如 "@+id/button" 的含义是在 R.java 文件中的 id 这个静态内部类添加一条常量名为 button, 该常量就是该资源的标识符 如果 id 这个静态内部类不存在, 则会先生成它 通过该方式生成的资源标识符, 的方式引用 示例代码片段如下 < RelativeLayout

6 第 3 章 Android 应用程序剖析 25 android:layout_width = "fill_parent" android:layout_height = "wrap_content" > < Button android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "@string/cancle_button" android:layout_alignparentright = "true" android:id = "@+id/cancle" /> < Button android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_toleftof = "@id/cancle" android:layout_aligntop = "@id/cancle" android:text = "@string/ok_button" /> </ RelativeLayout > 其中,android:id="@+id/cancle" 将其所在的 Button 标识为 cancle, 在第二个 Button 中通过 "@id/cancle" 对第一个 Button 进行引用 AndroidMainfest.xml 详细介绍 每个应用程序都有一个功能清单文件 AndroidManifest.xml( 一定是这个名字 ) 在它的根目录里, 该清单文件给 Android 系统提供了关于这个应用程序的基本信息, 系统在运行任何程序代码之前必须知道这些信息 今后, 我们开发 Activity Broadcast Service 之后, 都要在 AndroidManifest.xml 中进行定义 另外, 如果使用到系统自带的服务如拨号服务 应用安装服务 GPRS 服务等都必须在 AndroidManifest.xml 中声明权限 AndroidManifest.xml 主要包含以下功能 命名应用程序的 Java 应用包, 这个包名用来唯一标识应用程序 描述应用程序的组件 活动 服务 广播接收者 内容提供者 ; 对实现每个组件和公布其功能 ( 比如, 能处理哪些意图消息 ) 的类进行命名, 这些声明使得 Android 系统了解这些组件及它们在什么条件下可以被启动 决定应用程序组件运行在哪个进程中 声明应用程序所必须具备的权限, 用以访问受保护的部分 API, 以及和其他应用程序交互 声明应用程序其他的必备权限, 用以组件之间的交互 列举测试设备 Instrumentation 类, 用来提供应用程序运行时所需的环境配置及其他信息, 这些声明只在程序开发和测试阶段存在, 发布前将被删除 声明应用程序所要求的 Android API 的最低版本级别 列举 application 所需要链接的库 下面以 HelloWorld 项目的功能清单文件为例进行讲解

7 26 精通 Android 应用开发 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.example.helloworld" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="16" /> <application android:allowbackup="true" > <activity android:name="com.example.helloworld.mainactivity" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> 以下详细讲解各个标签 (1)<manifest> 元素 <manifest xmlns:android=" package="com.example.helloworld" android:versioncode="1" android:versionname="1.0" > 该元素是 AndroidManifest.xml 文件的根元素, 该元素为必选 其中, 根据 xml 文件的语法, xmlns:android 指定该文件的命名空间 功能清单文件会使用 android.com/apk/res/android 所指向的一个文件 package 属性是指定 Android 应用所在的包 android:versioncode 指定应用的版本号 如果应用需要不断升级, 在升级时应该修改该值 android:versionname 是版本名称, 名称的取定可根据爱好而定 (2)<application> 元素 <application android:allowbackup="true"

8 第 3 章 Android 应用程序剖析 27 android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.example.helloworld.mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> <application> 是非常重要的一个元素, 今后, 开发的许多组件都会在该元素下定义, 该元素为必选元素 <application> 的 icon 属性用来设定应用的图标 <application> 的 label 属性用来设定应用的名称 相同, 同样指向 R.java 件中的 string 静态内部类中的 app_name 属性所指向的资源 这里它指向的是 strings.xml 文件中的一条记录 app_name, 其值为 HelloWorld, 因此, 这种表达方式等价于 android:label = HelloWorld (3)<activity> 元素 <activity> 元素的作用是注册一个 Activity 信息, 当我们在创建 HelloWorld 这个项目时, 指定了 Create Activity 属性为 MainActivity, 之后 ADT 在生成项目时帮我们自动创建了一个 Activity 名称就是 MainActivity.java,Activity 在 Android 中属于组件, 它需要在功能清单文件中进行配置 <activity> 元素的 name 属性指定的是该 Activity 的类名 <activity> 元素的 label 属性表示 Activity 所代表的屏幕标题, 其属性值的表达式在上面已经介绍过了, 不再赘述 该属性值在 AVD 运行程序到该 Activity 所代表的界面时, 会在标题上显示该值 (4)<intent-filter> 元素翻译成中文是 意图过滤器 首先简单介绍什么是意图(Intent) 应用程序的核心组件 ( 活动 服务和广播接收器 ) 通过意图被激活, 意图代表的是你要做的一件事情, 代表你的目的,Android 寻找一个合适的组件来响应这个意图, 如果需要会启动这个组件一个新的实例, 并传递给这个意图对象, 后面会有详细介绍 组件通过意图过滤器 (intent filters) 通告它们所具备的功能 能响应的意图类型 由于 Android 系统在启动一个组件前必须知道该组件能够处理哪些意图, 那么意图过滤器需要在 manifest 中以 <intent-filter> 元素指定 一个组件可以拥有多个过滤器, 每一个描述该组件所具有的不同能力 一个指定目标组件的显式意图将会激活那个指定的组件, 意图过滤器不起作用 但是一个没有指定目标的隐式意图只在它能够通过组件过滤器时才能激活该组件 第一个过滤器 <intent-filter>

9 28 精通 Android 应用开发 <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> 是最常见的, 它表明这个 activity 将在应用程序加载器中显示, 就是用户在设备上看到的可供加载的应用程序列表 换句话说, 这个 activity 是应用程序的入口, 是用户选择运行这个应用程序后所见到的第一个 activity (5) 权限 Permissions HelloWorld 项目的功能清单文件中并没有出现 <Permissions> 元素, 但是 Permission 也是一个非常重要的节点, 在后面的学习中会经常用到 Permission 是代码对设备上数据的访问限制, 这个限制被引入来保护可能会被误用而曲解或破坏用户体验的关键数据和代码 如拨号服务 短信服务等 每个许可被一个唯一的标签所标识 这个标签常常指出了受限的动作 如申请发送短信服务的权限需要在功能清单文件中添加如下语句 <uses-permission android:name="android.permission.send_sms"/> 一个功能 (feature) 最多只能被一个权限许可保护 如果一个应用程序需要访问一个需要特定权限的功能, 它必须在 manifest 元素内使用 <uses-permission> 元素来声明这一点 这样, 当应用程序安装到设备上之后, 安装器可以通过检查签署应用程序认证的机构来决定是否授予请求的权限, 在某些情况下, 会询问用户 如果权限已被授予, 那应用程序就能够访问受保护的功能特性 如果没有, 访问将失败, 但不会给用户任何通知 因此我们在使用一些系统服务, 如拨号 短信 访问互联网 访问 SDCard 时一定要记得添加相应的权限, 否则会出现一些难以预料的错误 应用程序还可以通过权限许可来保护它自己的组件 ( 活动 服务 广播接收器 内容提供者 ) 它可以利用 Android 已经定义 ( 列在 android.manifest.permission 中 ) 或其他应用程序已声明的权限许可, 或者定义自己的许可 一个新的许可通过 <permission> 元素声明 比如, 一个 Activity 可以用下面的方式保护 <manifest... > <permission android:name="com.example.project.debit_acct"... />... <application...> <activity android:name="com.example.project.freneticactivity"... > android:permission="com.example.project.debit_acct"... >... </activity> </application>... <uses-permission android:name="com.example.project.debit_acct" />...

10 第 3 章 Android 应用程序剖析 29 </manifest> 注意 : 在这个例子里, 这个 DEBIT_ACCT 许可并非仅仅在 <permission> 元素中声明, 如果该应用程序的其他组件要使用到该组件, 那么它同样声明在 <uses-permission> 元素里 (6) 库 Libraries 每个应用程序都链接到缺省的 Android 库, 这个库包含了基础应用程序开发包 ( 实现了基础类如活动 服务 意图 视图 按钮 应用程序 内容提供者等 ) 然而, 一些包处于它们自己的库中 如果你的应用程序使用了其他开发包中的代码, 它必须显式地请求链接到它们 这个 manifest 必须包含一个单独的 <uses-library> 元素来命名每一个库 如在进行单元测试的时候需要引入其所需要的库 代码片段如下 : <application android:icon="@drawable/icon" android:label="@string/app_name"> <uses-library android:name="android.test.runner" /> </application> 3.2 Android 应用程序的执行流程 经过前面对 Android 项目目录结构的介绍, 以及相关文件的讲解, 我们对许多细节已经有所了解, 只是 Android 程序是如何执行呢? 下面做一个总结 发布程序到手机上之后, 当双击该应用的图标时, 系统会将这个点击事件包装成一个 Intent 该 Intent 包含两个参数 { action : "android.intent.action.main", category : "android.intent.category.launcher" }, 这个意图被传递给 HelloWorld 这个应用之后在应用的功能清单文件中寻找与该意图匹配的意图过滤器, 如果匹配成功, 找到相匹配的意图过滤器所在的 Activity 元素, 再根据 <activity> 元素的 name 属性来寻找其对应的 Activity 类 接着 Android 操作系统创建该 Activity 类的实例对象, 对象创建完成之后, 会执行到该类的 oncreate 方法, 此 OnCreate 方法是重写其父类 Activity 的 OnCreate 方法而实现 oncreate 方法用来初始化 Activity 实例对象 如下是 HelloWorld.java 类中 oncreate protected void oncreate(bundle savedinstancestate) { } super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); 其中,super.onCreate(savedInstanceState) 的作用是调用其父类 Activity 的 OnCreate 方法来实现对界面的画图绘制工作 在实现自己定义的 Activity 子类的 OnCreate 方法时一定

11 30 精通 Android 应用开发 要记得调用该方法, 以确保能够绘制界面 setcontentview(r.layout. main ) 的作用是加载一个界面, 该方法中传入的参数是 R.layout. activity_main, 其含义为 R.java 类中静态内部类 layout 的静态常量 activity_main 的值, 而该值是一个指向 res 目录下的 layout 子目录下 activity_main 文件的标识符, 因此代表着显示 activity_main 所定义的画面 关于 Activity 类的执行流程及其生命周期会在后面的部分详细讲解 Android 程序执行的整个序列图如图 3.3 所示 图 3.3 Android 应用执行序列图 3.3 Android 应用程序的基本组件 在第 1 章中我们提到了 Android 平台的几大优点, 其中, 包括开放性和应用程序平等 的确,Android 最吸引人的特性之一就是应用程序可以利用其他应用程序来完成想要的功能! 例如, 你的应用程序需要用到图片浏览功能, 而这时正好有另一个应用程序已经开发出一个合适的图片浏览程序, 太好了! 你再也不用自己开发图片浏览程序, 而是直接利用已有的程序即可 那么, 如何才能利用别的应用程序中的成果呢? 只需要在必要时启动那个图片浏览功能 这听起来简直不可思议,Android 平台是如何完成这样神奇的工作呢? 与其他计算机平台上的应用程序不同,Android 应用程序没有唯一的启动入口 ( 如 C 语言中 main() 函数入口 ), 一个 Android 应用程序是由多个不同的组件组合而成, 组件之间通过 Intent 来实现通信 Android 系统的基本组件包括 Activity Service BroadcastReceiver ContentProvider 等, 此外, 还包括专门负责在基本组件之间传递消息的 Intent 组件 所有这些组件都必须

12 第 3 章 Android 应用程序剖析 31 在 AndroidManifest.xml 文件中声明, 这些组件如何协调工作呢? 下面通过一个简单的用户与应用程序交互的例子来说明 Android 程序中上述组件是如何配合的, 这里包含了两个 Activity, 如图 3.4 所示 图 3.4 示例应用程序的结构 首先, 用户通过 Activity 与应用程序交互, 如图中步骤 1 应用程序中的 Activity 通过 Intent 来向 Android 平台请求启动一个能处理打开 的应用程序, 如图中步骤 2 和步骤 3 Android 系统通过 AndroidManifest.xml 中声明的 IntentFilter 找到能处理打开 的应用程序, 如图中步骤 4 和步骤 5 用户与 应用程序进行交互, 如图中步骤 6 应用程序通过 ContentProvider 来使用另一个录音应用程序产生的音频文件, 如图中步骤 7 用户播放刚才的音频文件, 并返回到了之前的应用程序, 此时音频文件仍然会继续播放, 因为 Service 将在后台工作, 如图中的步骤 8 当然, 并不是每个 Android 应用程序都必须包含这些组件, 但是一旦确定了应用程序中需要的组件, 就应该在 AndroidManifest.xml 中声明它们 接下来对这些基本组件做简单地介绍, 使读者对这些组件建立一个大致的认识, 后面章节还会对这些组件详细介绍 Activity Activity 是应用程序的表示层 应用程序中的每个屏幕显示都通过集成和扩展基类 Activity 来实现 Activity 利用 View 来实现应用程序的 GUI, 而手机用户则直接通过 GUI 和应用程序交互, 如应用程序通过 GUI 向用户显示信息, 用户通过 GUI 向应用程序发出指令和响应 例如, 一个短信应用程序, 需要一个 Activity 来显示联系人列表, 同时需要另一个

13 32 精通 Android 应用开发 Activity 显示用户输入的短信内容, 甚至还可能需要第三个 Activity 显示已收到短信的内容 虽然这些 Activity 整体形成了一个完整的短信程序用户界面, 但实际上每个 Activity 是独立的 当然, 它们也有共同点 每个 Activity 都是继承自 Activity 的子类 应用程序往往由多个 Activity 组成 一个应用程序需要多少个 Activity? 每个 Activity 表示什么样的用户界面? 这些问题都取决于具体的应用程序设计 通常的原则是, 程序启动后显示的第一副画面是应用程序的第一个 Activity, 以后根据应用程序的需要从一个 Activity 跳转到一个新的 Activity 下面这段代码展示了之前的项目 HelloWorld 创建 Activity 的方法 public class MainActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); } 对于每个 Activity, 系统会分配一个默认的窗口 一般情况下, 窗口将沾满整个屏幕 改变默认属性, 窗口大小也是可调整的 窗口的显示位置也可以悬浮在其他窗口之上 Activity 同时也能使用别的窗口, 为了提醒用户, 可以在一个 Activity 中使用弹出对话框 Activity 窗口内的可见内容通过 View 提供,View 对象继承自 View 类, 每个 View 对象控制这窗口内的一个巨型空间 View 是一种层次结构, 父 View 包含的布局属性会被子 View 继承 位于 View 层次关系最底部的子 View 对象所代表的矩形空间就是跟用户进行交互的地方 例如, 我们可以用一个 View 对象来显示图片, 并在用户点击图片时产生相应的动作 Android 自带了很多不同的 View 供开发者使用, 如按钮 文本框 滚动条 菜单项等, 这些内容会在后续章节进行详细介绍 既然 Activity 的内容通过 View 来显示, 那么如何才能将 View 对象放入 Activity 中呢? 可以调用 Activity.setContentView(), 如上面代码中的最后一行 Service Service 与 Activity 的地位是并列的, 它也代表一个单独的 Android 组件 但与 Activity 相反,Service 没有可见的界面, 它的特点是能长时间在后台运行, 也可以这样理解,Service 是具有一段较长生命周期且没有用户界面的程序 为什么我们需要长时间在后台运行的 Service? 想想音乐播放器! 可能在播放音乐的同时去编辑短信或浏览网页, 就像笔者现在就一边写书一边听着音乐, 这种情况下音乐播放器不可能一直处于前台 为了让音乐一直播放下去, 需要将播放音乐的任务放在后台 这样, 即使音乐播放器已经不再显示了, 用户仍然可以听到音乐 所以, 我们需要这样的机制 长时间在后台运行的 Service 与 Activity 组件需要集成 Activity 基类相似,Service 组件需要继承 Service 基类 一个 Service 组件被运行起来后, 它将拥有自己独立的生命周期

14 第 3 章 Android 应用程序剖析 BroadcastReceiver BroadcastReceiver 是用户接受广播通知的组件 广播是一种同时通知多个对象的事件通知机制 Android 中的广播通知要么来自系统, 要么来自普通应用程序 很多事件都可能导致系统广播, 如手机所在的时区发生变化, 电池电量低, 用户改变系统语言设置等 当然也有广播来自应用程序, 比如, 一个应用程序通知其他应用程序某些数据已经下载完毕 为了响应不同的事件通知, 应用程序可以注册不同的 BroadcastReceiver, 而所有的 BroadcastReceiver 都继承自基类 BroadcastReceiver 需要说明的是,BroadcastReceiver 自身并不实现图形用户界面, 但是当它收到某个通知消息后,BroadcastReceiver 可以启动 Activity 作为响应, 或者通过 NotificationManager 提醒用户 ContentProvider 在 Android 中, 每个应用程序都使用自己的用户 id 并在自己的进程中运行 这样做的好处是, 可以保护系统及应用程序, 避免被其他不正常的应用程序影响, 每个进程都拥有独立的进程地址空间和虚拟内存 当应用程序彼此间需要共享资源时, 这样的架构必须需要一个妥善的解决方案 例如,Contacts 应用程序内存中保存使用者的联系资料, 当你在 中要填写收信人时, 希望读取 Contacts 内的联系人资料 由于 Contacts 和 这两个应用程序运行在不同的进程中, 因此, 它们无法直接通过内存共享联系人资料 为了解决应用程序间数据通信 共享的问题,Android 提供了 ContentProvider 机制 ContentProvider 能将应用程序特定的数据提供给另一个应用程序使用 数据的存储方式可以是 Android 文件系统, 也可以是 SQLite 数据库, 或者别的合理方式 ContentProvider 继承自父类 ContentProvider, 并且实现了一组标准的接口, 通过这组接口, 其他应用程序能对数据进行读写和存储 然而, 需要使用数据的应用程序并不是直接调用这组方法, 而是通过调用 ContentResolver 对象的方法来完成的 ContentResolver 对象可以与任意 ContentProvider 通信 Intent 和 IntentFileter 严格地说,Intent 并不是 Android 应用的组件, 但是它对于 Android 应用的作用非常大 它是 Android 应用程序内不同组件之间通信的载体 当 Android 运行需要连接不同的组件时, 通常需要借助 Intent 实现 Intent 可以启动应用中另一个 Activity, 也可以启动一个 Service 组件, 还可以发送一条广播消息来触发系统中的 BroadcastReceiver 也就是说, Activity Service BroadcastReceiver 三种组件之间的通信都以 Intent 为载体, 只是不同组件使用 Intent 的机制略有区别 具体组件间如何通过 Intent 进行通信, 后续章节会详细介绍, 在此不再赘述

15 34 精通 Android 应用开发 3.4 本章小结 本章主要对 Android 应用程序进行了深入剖析, 首先介绍了 Android 应用程序的构成及程序的内部执行流程, 并对一个 Android 应用程序所需要的基本组件功能及其作用进行简单介绍, 使读者对 Android 应用程序的内部执行有一个清晰的认识

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

Microsoft Word - 第1章 Android基本概念.docx

Microsoft Word - 第1章 Android基本概念.docx Android 系 统 下 Java 编 程 详 解 作 者 : 华 清 远 见 第 1 章 Android 基 本 概 念 本 章 简 介 本 章 主 要 介 绍 Android 基 本 概 念 方 面 的 内 容, 包 括 Android 平 台 特 性 Android 系 统 架 构 Android 开 发 框 架 和 Android 开 发 环 境 搭 建 1.1 Android 简 介 Android

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

書面

書面 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 5.4 互動功能畫面 程式碼請參考附件-程式三 在進入互動頁面時 會執行setAllText()依寵物狀態數值來 設定狀態文字與頭像 並且依心情決定是否要不要播放音效 觸摸的區域 由於是自己寫的 view 所以並未透過xml來設置 而是透過Layut.addview()來動態新增

More information

Lecture01_Android介绍

Lecture01_Android介绍 移动平台应用软件开发 Android 介绍 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一七年秋北京 Android是什么 Android不仅仅是一个操作系统 它更是一个完整的软件框 架 Android基于Linux内核 2005年Google公司收购了Android公司 Google公司选择使用Apache许可证开放Android源码

More information

0511-Android程式之GPS應用_專題週記4

0511-Android程式之GPS應用_專題週記4 逢甲大學通訊工程學系專題研究 Android 程式之 GPS 應用 專題週記 0511 學生姓名 陳彥儒 D0035131 廖元譽 D0077791 指導老師 楊豐瑞老師繳交日期 2014.05.11 1 匯入 GoogleMap 1.1 取得授權步驟 目前進度 取得 Google 授權鑰匙 實作程式尚未成功 1.1.1 建立個人的 keystore 1.1.2 由個人的 keystore 查詢 SHA1

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

Microsoft PowerPoint - 03 开发入门.ppt [兼容模式]

Microsoft PowerPoint - 03 开发入门.ppt [兼容模式] 手 机 应 用 平 台 软 件 开 发 3 开 发 入 门 刘 宁 Email:liuning2@mail.sysu.edu.cn 课 程 简 介 课 程 目 标 Android 开 发 准 备 工 作 开 发 包 及 工 具 安 装 创 建 HelloWorld Android 程 序 设 计 基 础 创 意 移 动 应 用 创 意 移 动 应 用 创 意 移 动 应 用 创 意 移 动 应 用

More information

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之 臺 北 市 大 安 高 級 工 業 職 業 學 校 資 訊 科 一 百 零 一 學 年 度 專 題 製 作 報 告 ------ 以 Android 製 作 ------ ----- 連 線 塔 防 遊 戲 ------ Tower defense game using Internet technology 班 級 : 資 訊 三 甲 組 別 : A9 組 組 員 : 葉 冠 麟 (9906129)

More information

Android 开发快速入门 第 章.1 开发环境的搭建 在开始 Android 开发之旅启动之前, 首先要搭建环境,Android 开发环境的安装和配置是 开发 Android 应用程序的第一步, 也是深入 Android 平台的一个非常好的入口.1.1 开发准备工作 配置 Android 开发环

Android 开发快速入门 第 章.1 开发环境的搭建 在开始 Android 开发之旅启动之前, 首先要搭建环境,Android 开发环境的安装和配置是 开发 Android 应用程序的第一步, 也是深入 Android 平台的一个非常好的入口.1.1 开发准备工作 配置 Android 开发环 Android 开发快速入门 学习目标 : 对 Android 快速入门, 能够开发运行简单 Android 应用, 为以后深入学习打下坚实基础 知识目标 理解 Android 相关的基本概念 熟练搭建 Android 开发运行环境 编写一个 Android 应用程序 了解 Android 应用四个主要组件 技能目标 能熟练搭建 Android 开发环境 编写运行一个 Android 应用 Android

More information

Dynamic Layout in Android

Dynamic Layout in Android Dynamic Layout in Android 建國科技大學資管系 饒瑞佶 2013/5 V1 Layout 多半都透過 res/layout/xml 格式設定來達成 Android 是 OOP, 所以可以動態產生 Layout 重點是 Layout 的階層關係 (Hierarchy) 需要處理對應事件 最後一樣用 setcontentview 加入 Layout 一 加入現有 Layout 中

More information

Android Android Android SDK iv

Android Android Android SDK iv Android Market Google Android SDK Apple Google Microsoft b2c b 2010 Internet Android how why iii Android 240... Android Android SDK iv Android Market Google Android SDK Visual C++ Java N-tier J2EE Unix/Linux

More information

_banneradview.settest(true); _banneradview.setuserkeywords("swimming"); _banneradview.setusercategories("1,3,4"); _banneradview.setusergender(jdbanner

_banneradview.settest(true); _banneradview.setuserkeywords(swimming); _banneradview.setusercategories(1,3,4); _banneradview.setusergender(jdbanner 京东 APP 联盟 SDK Android 版接口说明文档 1.0 1. 嵌入 SDK 1.1 添加 SDK Android Studio 环境 : 菜单 New->New Module->Import.jar or.aar package, 然后选中 App 联盟 SDK 所带的 jar 文件 Eclipse+ADT 环境 : 将 App 联盟 SDK 所带的 jar 文件拷贝到 libs/ 目录下

More information

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class

More information

03 开发入门.key

03 开发入门.key #3 手机应用开发入门 刘宁 Email:liuning2@mail.sysu.edu.cn 大纲» Android 基本概念» 开发包及 工具安装» 创建 HelloWorld» Android 程序设计基础 2 Android 开发基本概念» Activities» Intents» 视图与控件 ( 界 面元素 )» 异步调 用 ( 多线程 支持 )» 后台服务 3 Activities Android

More information

Android Service

Android Service Android Service- 播放音樂 建國科技大學資管系 饒瑞佶 2013/7 V1 Android Service Service 是跟 Activity 並行 一個音樂播放程式若沒使用 Service, 即使按 home 鍵畫面離開之後, 音樂還是照播 如果再執行一次程式, 新撥放的音樂會跟先前撥放的一起撥, 最後程式就會出錯 執行中的程式完全看不到! 但是, 寫成 Service 就不同了

More information

PowerPoint 簡報

PowerPoint 簡報 UI 設計 Android 專案目錄架構 Android 專案建立後會自動產生 3 個主要目錄 src:java 程式檔案 res: 資源 ( 文字 圖形 聲音檔案等 ) 與 UI 設定有關的 layout 檔 此目錄內檔案名稱只能為小寫字母 數字 _. gen:r.java 根據 res 目錄內容自動產生 不要去修改 R.java Android 中所有的資源檔案 ( 圖片 XML 等 ) 命名都必須使用英文小寫,

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image,

More information

建模与图形思考

建模与图形思考 F06_c 观摩 :ContentProvider 基於軟硬整合觀點 架构與 DB 引擎移植方法 ( c) By 高煥堂 4 通用性基类 ContentProvider 基於軟硬整合觀點 的使用范例 刚才的范例里, 我们直接使用 DataPersist 类的接口来与 SQLite 沟通 本节将替 DataPersist 配上 ContentProvider 基类, 让 Client 能透过 ContentProvider

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e Android Studio Debugging 本篇教學除了最基本的中斷點教學之外, 還有條件式中斷的教學 條件式中斷是進階的除錯技巧, 在某些特定情況中, 我們有一個函數可能會被呼叫數次, 但是我們只希望在某種條件成立時才進行中斷, 進而觀察變數的狀態 而條件式中斷這項技巧正是符合這項需求 本教學分兩部分 單步除錯 (Page2~11, 共 10) 條件式中斷點 (Page12~17, 共 6)

More information

X713_CS_Book.book

X713_CS_Book.book / / /USB ) ; ; C D ; ; B B 1 >> 2 3 B 1 ( > > ) 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 GSM GPS ( ) 手机已连接到 GSM 网络 指示条越多, 接收质量越好 GPS 2 ...........................4.............................. 4 Micro SD (

More information

第四章 102 图 4唱16 基于图像渲染的理论基础 三张拍摄图像以及它们投影到球面上生成的球面图像 拼图的圆心是相同的 而拼图是由球面图像上的弧线图像组成的 因此我 们称之为同心球拼图 如图 4唱18 所示 这些拼图中半径最大的是圆 Ck 最小的是圆 C0 设圆 Ck 的半径为 r 虚拟相机水平视域为 θ 有 r R sin θ 2 4畅11 由此可见 构造同心球拼图的过程实际上就是对投影图像中的弧线图像

More information

小应用 Magic8

小应用 Magic8 胡家威 计研135班 http://hujiaweibujidao.github.io/ 小应用 Magic8 Android 系统简介 Android 应用结构 Android 四大组件 Activity 生命周期 Android 资源管理 UI 组件和容器组件 内容概要 ( 上 ) Android 系统简介 Android 市场份额 Android 是如何诞生的? Android 之父 :Andy

More information

1

1 内 容 提 要 作 为 Google 开 发 的 全 新 开 源 手 机 平 台,Android 发 展 如 火 如 荼 本 书 通 过 大 量 代 码 秘 诀 全 面 详 尽 地 讲 述 了 Android 开 发 技 术 从 activity 和 intent 基 础 知 识 开 始, 到 线 程 服 务 broadcast receiver 以 及 alert 警 告 框, 再 到 用 户 界

More information

软件工程文档编制

软件工程文档编制 实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,

More information

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes 包管理理 工具 Helm 蔺礼强 Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes

More information

建立Android新專案

建立Android新專案 Android 智 慧 型 手 機 程 式 設 計 Android WebService 建 國 科 技 大 學 資 管 系 饒 瑞 佶 2012/4 V1 2012/8 V2 2013/5 V3 2014/10 v4 提 醒 這 節 的 內 容 針 對 的 是 MS 的 Web Service 或 是 使 用 SOAP(Simple Object Access Protocol) 標 準 建 立

More information

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc 1.1 组合 Hibernate 与 Spring 1. 在 Eclipse 中, 新建一个 Web project 2. 给该项目增加 Hibernate 开发能力, 增加 Hibernate 相关类库到当前项目的 Build Path, 同时也提供了 hibernate.cfg.xml 这个配置文件 3. 给该项目增加 Spring 开发能力, 增加 spring 相关类库到当前项目的 Build

More information

Android Fragment

Android Fragment Android Fragment 建國科技大學資管系饒瑞佶 2017/10 V1 Android 3.0 後才支援 Fragment 解決部分 App 適應螢幕大小的問題 它類似於 Activity, 可以像 Activity 可以擁有自己的版面設計, 也和 Activity 一樣有自己的生命週期 ( 具備 oncreate() oncreateview() 與 onpause() 方法 ) LifeCycle

More information

幻灯片 1

幻灯片 1 Delivering accurate maps to Chinese Android users 为中国安卓用户提供准确的地图服务 Work at Mapbox includes: Android apps, demos, starter kits, documentation, support, syncing Android team with other departments, etc.

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 语 言 程 序 设 计 郑 莉 胡 家 威 编 著 清 华 大 学 逸 夫 图 书 馆 北 京 内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 握 语

More information

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public

More information

ShareText

ShareText 作者 : 林致宇 日期 :2012/1/23 問題 : 如何分享分享文字資訊給其它的應用程式? 解答 : 有時候我們可能會希望 我們的應用程式的資訊 能夠讓使用者分享出去, 讓使用者能夠將此資訊傳送簡訊給其好友或寄電子郵件的方式寄給其好友, 這份文件將示範如何寫出這樣的應用程式 本文件將產出兩個 App, 第一個 App 是 分享資料的來源, 名為 CopyPaste_Source, 功能非常簡單,

More information

IDEO_HCD_0716

IDEO_HCD_0716 IDEO HCD Toolkit Tencent CDC ...? Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC

More information

RxJava

RxJava RxJava By 侦跃 & @hi 头 hi RxJava 扩展的观察者模式 处 观察者模式 Observable 发出事件 Subscriber 订阅事件 bus.post(new AnswerEvent(42)); @Subscribe public void onanswer(answerevent event) {! }! Observable observable = Observable.create(new

More information

ChinaBI企业会员服务- BI企业

ChinaBI企业会员服务- BI企业 商业智能 (BI) 开源工具 Pentaho BisDemo 介绍及操作说明 联系人 : 杜号权苏州百咨信息技术有限公司电话 : 0512-62861389 手机 :18616571230 QQ:37971343 E-mail:du.haoquan@bizintelsolutions.com 权限控制管理 : 权限控制管理包括 : 浏览权限和数据权限 ( 权限部分两个角色 :ceo,usa; 两个用户

More information

长 安 大 学 硕 士 学 位 论 文 基 于 数 据 仓 库 和 数 据 挖 掘 的 行 为 分 析 研 究 姓 名 : 杨 雅 薇 申 请 学 位 级 别 : 硕 士 专 业 : 计 算 机 软 件 与 理 论 指 导 教 师 : 张 卫 钢 20100530 长安大学硕士学位论文 3 1 3系统架构设计 行为分析数据仓库的应用模型由四部分组成 如图3 3所示

More information

Android + NFC

Android + NFC Android + NFC 建國科技大學資管系饒瑞佶 2017/3 v1 讀取 Tag UUID Android 2.3.3 (API Level 10) 才有支援完整的 NFC 功能 只要 NFC 相容都讀的到 (NFC 或 Mifare) 建立新專案修改 AndroidManifest.xml 加入 , 如果有 NFC Tag 進入感測範圍, 本 App 也會變成可處理的

More information

人民邮电

人民邮电 第 2 章 布 局 布 局 是 所 有 带 界 面 的 Android 程 序 的 开 端 布 局 应 用 得 好 坏 直 接 决 定 了 程 序 的 用 户 体 验 虽 然 布 局 看 似 没 有 组 件 复 杂, 但 也 涉 及 到 了 很 多 技 巧 在 各 大 公 司 的 面 试 题 中 也 会 经 常 遇 到 关 于 布 局 的 一 些 问 题 通 过 这 些 问 题 可 以 考 查 应

More information

xforce keygen microsoft office 2013

xforce keygen microsoft office 2013 Xforce Keygen Microsoft Office 2013 ->->->-> http://shurll.com/78610 1 / 5 2 / 5 Generally, Autodesk,,Vault,,Office,,2016,,555H1,,Autodesk,,Vault,,Professional,,2016,,569H1,,Autode sk,,vault,,workgroup,,2016,,559h1,,autodesk,,vehicle,,tracking,,2016,,955h1,,autodesk,,vred...

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

内文-2.indd

内文-2.indd 客户端服务端音乐资源信息 : 1. 项目需求从本项目开始, 我们一起开发一个简单的在线音乐播放器, 它具有以下功能 (1) 程序启动时显示一个启动画面, 如图 1-1 所示 (2) 在程序主页面显示服务器上的歌曲列表, 包括歌手名与歌曲名, 单击列表条目可实现在线音乐播放, 单击 播放 暂停 上一曲 下一曲 按钮可实现对应的功能, 进度条可以显示歌曲播放进度, 如图 1-2 所示 图 1-1 程序启动画面

More information

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android= 第 6 章广播接收者 应用案例 案例 6-1 CallRecord( 通话记录 ) 一 案例描述 1 考核知识点 030006001: 广播接收者简介 030006002: 广播接收者的创建 2 练习目标 广播的静态注册和使用 使用广播处理处理事件 3 需求分析手机最重要的功能就是通话功能, 同样储存通话记录也是必不可少的 该案例使用广 播接收者自己实现通话记录的功能 包括呼出电话 已接来电 未接来电以及通话产生的

More information

01

01 ZEBRA 技术白皮书 条码编码 101 相关知识介绍 引言 20 70 数据 80 20 90 (JIT) AIAG EIA HIBCC HAZMAT 条码的优势提高数据准确性 99% 85% / / 提升效率 / 2 Zebra Technologies 保持一致性 ID 改进库存和资产管理 成本 / 效益分析 ID ID ID (ERP) RFID Zebra Technologies 3 ID

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public char

More information

使用Cassandra和Spark 2.0实现Rest API服务

使用Cassandra和Spark 2.0实现Rest API服务 使用 Cassandra 和 Spark 2.0 实现 Rest API 服务 在这篇文章中, 我将介绍如何在 Spark 中使用 Akkahttp 并结合 Cassandra 实现 REST 服务, 在这个系统中 Cassandra 用于数据的存储 我们已经见识到 Spark 的威力, 如果和 Cassandra 正确地结合可以实现更强大的系统 我们先创建一个 build.sbt 文件, 内容如下

More information

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 : EditText 实现城市搜索 1801210778 邹宇航 摘要 : 使用 EditText 实现搜索城市的功能, 以此为依据更新 ListView 1. 效果图 : 2. 主要步骤 (1) 在 select-city.xml 布局文件中中添加 EditText 控件用作搜索框, 然后添加 ListView 控件用来显示城市名字内容 代码如下 : 预览图 : (2) 在 SelectCity.java

More information

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony Ioncube Php Encoder 8 3 Crack 4 ->>->>->> DOWNLOAD 1 / 5 2 / 5 Press..the..General..Tools..category4Encrypt..and..protect..files..with..PHP..encoding,..encryption,..ob fuscation..and..licensing... 2016

More information

3-插件化轻巧之道-林光亮

3-插件化轻巧之道-林光亮 Small: 插件化轻巧之道 林光亮 0x00 诞生 0x01 轻 0x02 巧 0x03 TODO 诞生 模块 1 模块 2 模块 3 模块 4 模块 5 模块 6 诞生 模块 1 模块 2 模块 3 模块 4 模块 5 模块 6 分析支付宝客户端插件机制 @ 唐巧 - 猿题库 手机淘宝客户端架构探索实践 @ 于佳 - 阿里 诞生 + ios HTML Android Bundle Launcher

More information

基于CDIO一体化理念的课程教学大纲设计

基于CDIO一体化理念的课程教学大纲设计 Java 语 言 程 序 设 计 课 程 教 学 大 纲 Java 语 言 程 序 设 计 课 程 教 学 大 纲 一 课 程 基 本 信 息 1. 课 程 代 码 :52001CC022 2. 课 程 名 称 :Java 语 言 程 序 设 计 3. 课 程 英 文 名 称 :Java Programming 4. 课 程 类 别 : 理 论 课 ( 含 实 验 上 机 或 实 践 ) 5. 授

More information

Microsoft Word - Broker.doc

Microsoft Word - Broker.doc Broker 模式 采用 broker 模式对分布式计算进行简单模拟 系统在一个进程内模拟分布式环境, 因此不涉及网络编程和进程间通信,Broker 通过本地函数调用的方式实现 request 和 response 的转发 采用 broker 模式对分布式计算进行简单的模拟, 要求如下 : 设计四个 server, 一个 server 接收两个整数, 求和并返回结果, 一个 server 接收两个整数,

More information

Microsoft PowerPoint - 07.Android 介面元件-TableLayout、Toast、AlertDialog

Microsoft PowerPoint - 07.Android 介面元件-TableLayout、Toast、AlertDialog 計劃名稱 : 104 年度教育部資通訊軟體創新人才推升推廣計畫跨校資源中心 : 雲端運算 ( 國立中山大學 ) 課程名稱 : 網路及平台服務 Part1- 課程教材 教材名稱 :Android 介面元件 -TableLayout Toast AlertDialog 國立高雄大學資訊工程學系張保榮教授 大綱 TableLayout 版面配置 Toast 版面配置 AlertDialog 版面配置 TableLayout

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

X513_Book.book

X513_Book.book : 2.0MP +/- TFT /, / / USB SIM 1 >>> 2, > 3 + -< > 4, (, ) / / / L R * 1 Wap Wap push GSM GPRS ( ) GSM GPRS 2 ...........................4.............................. 4 Micro SD ( )................ 6..........................

More information

版权声明

版权声明 大 话 企 业 级 Android 开 发 第 九 部 分 本 教 程 说 明 及 版 权 声 明 大 话 企 业 级 Android 开 发 是 国 士 工 作 室 为 了 方 便 中 国 Android 开 发 者, 推 动 Android 企 业 级 应 用 开 发, 特 投 入 大 量 心 血 撰 写 的 书 籍, 并 在 网 络 上 免 费 发 布, 希 望 为 移 动 互 联 网 和 智

More information

静态分析 投放文件 行为分析 互斥量 (Mutexes) 执行的命令 创建的服务 启动的服务 进程 cmd.exe PID: 2520, 上一级进程 PID: 2556 cmd.exe PID: 2604, 上一级进程 PID: 2520 访问的文件 C:\Users\test\AppData\Lo

静态分析 投放文件 行为分析 互斥量 (Mutexes) 执行的命令 创建的服务 启动的服务 进程 cmd.exe PID: 2520, 上一级进程 PID: 2556 cmd.exe PID: 2604, 上一级进程 PID: 2520 访问的文件 C:\Users\test\AppData\Lo 魔盾安全分析报告 分析类型 开始时间 结束时间 持续时间 分析引擎版本 FILE 2016-11-25 00:20:03 2016-11-25 00:22:18 135 秒 1.4-Maldun 虚拟机机器名 标签 虚拟机管理 开机时间 关机时间 win7-sp1-x64 win7-sp1-x64 KVM 2016-11-25 00:20:03 2016-11-25 00:22:18 魔盾分数 0.0

More information

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63>

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63> 基 于 Android 平 台 的 电 子 拍 卖 系 统 摘 要 本 电 子 拍 卖 系 统 其 实 就 是 一 个 电 子 商 务 平 台, 只 要 将 该 系 统 部 署 到 互 联 网 上, 客 户 都 可 以 在 该 系 统 上 发 布 想 出 售 的 商 品, 也 可 以 对 拍 卖 中 的 商 品 参 与 竞 价 整 个 过 程 无 须 人 工 干 预, 由 系 统 自 动 完 成 本

More information

PowerPoint Presentation

PowerPoint Presentation Android 介绍 1. Android 开发环境搭建 2. 第一个项目 HelloAndroid 3. Android 项目目录结构 4. Android 应用解析 5. Android 生命周期 6. Widget 开发 7. Android 中的显示单位 8. DDMS 的简介与使用 9. apk 的安装与卸载 1. Android 开发环境搭建 所需软件 : JDK: 1.6 以上 Eclipse:3.4

More information

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 导 你 搭 建 Linux 平 台 下 的 JAVA 开 发 环 境, 包 括 JDK 以 及 集

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public char

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class - Table.class

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

ltu

ltu 資 訊 管 理 系 學 齡 前 自 主 學 習 之 行 動 裝 置 輔 助 系 統 指 導 教 授 : 李 靜 怡 教 授 組 員 名 單 : 蔡 承 育 988C012 黃 佳 誼 988C026 鄭 亦 琦 988C060 廖 曼 伶 988C108 中 華 民 國 1 0 2 年 5 月 嶺 東 科 技 大 學 資 訊 管 理 系 學 齡 前 自 主 學 習 之 行 動 裝 置 輔 助 系 統

More information

PowerPoint Presentation

PowerPoint Presentation 1 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类 WAC Widget Java ME 手机新动向陈志宇 2 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类 以下内容旨在概述我们产品总的发展方向 该内容仅供参考, 不可纳入任何合同 该内容不构成提供任何材料 代码或功能的承诺, 并且不应该作为制定购买决策的依据

More information

Microsoft PowerPoint - 05.Android 介面元件-RelativeLayout、Button、TextVeiw、EditText

Microsoft PowerPoint - 05.Android 介面元件-RelativeLayout、Button、TextVeiw、EditText 計劃名稱 : 104 年度教育部資通訊軟體創新人才推升推廣計畫跨校資源中心 : 雲端運算 ( 國立中山大學 ) 課程名稱 : 網路及平台服務 Part1- 課程教材 教材名稱 :Android 介面元件 -RelativeLayout Button TextVeiw EditText 國立高雄大學資訊工程學系張保榮教授 大綱 RelativeLayout 版面配置 Button 版面配置 TextView

More information

Isis Unveiled Pdf Free Download chayanne downgrade london stage militar mapsource

Isis Unveiled Pdf Free Download chayanne downgrade london stage militar mapsource Isis Unveiled Pdf Free Download ->>> DOWNLOAD 1 / 5 2 / 5 全部播放听 Isis,,,,Unveiled 的人也听,,,,Urbana's,,,,Too,,,,Dark,,,,--,,,,Braid,,,, 在线试听,,,,...,,,,,,,,,,,,,,,,,,,,.op_sp_fanyi{font-size:1em;word-break:normal;},,,,,,,,,,,,,,,,.op_sp_fanyi,,,,.op_sp_fanyi_rea

More information

Office Office Office Microsoft Word Office Office Azure Office One Drive 2 app 3 : [5] 3, :, [6]; [5], ; [8], [1], ICTCLAS(Institute of Computing Tech

Office Office Office Microsoft Word Office Office Azure Office One Drive 2 app 3 : [5] 3, :, [6]; [5], ; [8], [1], ICTCLAS(Institute of Computing Tech - OfficeCoder 1 2 3 4 1,2,3,4 xingjiarong@mail.sdu.edu.cn 1 xuchongyang@mail.sdu.edu.cn 2 sun.mc@outlook.com 3 luoyuanhang@mail.sdu.edu.cn 4 Abstract. Microsoft Word 2013 Word 2013 Office Keywords:,, HTML5,

More information

Microsoft Word - 九月月刊.docx

Microsoft Word - 九月月刊.docx 梅 Aug 2014 Vol. 1 Issue 7 + 1 常 的 糖尿病篇 Page 1 Ø Ø 我不需要自己, 那是 生的事情? Ø Ø Ø Ø 么 时 药 + more on 2 Lorem 梅 Aug 2014 Vol. 1 Issue 7 Ipsum 于血糖 : 我不需要自己, 那是 生的事情 2 梅 Aug 2014 Vol. 1 Issue 7 Lorem Ipsum 1) 2) 晚

More information

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;

More information

M9 SDK

M9 SDK M9 SDK 使用说明 M9 SDK 使用说明... 1 安装 M9 SDK... 2 系统需求... 2 M9SDK 安装... 2 M9 模拟器...3 创建 M9 模拟器...3 运行 M9 模拟器...4 安装 M9 设备驱动...6 M9SDK 开发指引...11 应用程序添加高清图片资源... 11 Meizu 自定制类...11 文件管理器调用接口... 11 安装 M9 SDK 系统需求

More information

Microsoft Word - 新1-12.doc

Microsoft Word - 新1-12.doc 实训 5 面向对象编程练习 实训 5 面向对象编程练习 5.1 实训目的 通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想 以及如何创建类 和对象 了解成员变量和成员方法的特性 5.2 实训要求 编写一个体现面向对象思想的程序 编写一个创建对象和使用对象的方法的程序 5.3 实训内容 5.3.1 创建对象并使用对象 1 定义一个 Person 类 可以在应用程序中使用该类 成员属性

More information

Microsoft Word - QTP测试Flex.doc

Microsoft Word - QTP测试Flex.doc TIB 自动化测试工作室 http://www.cnblogs.com/testware 使用 QTP 进行 Flex 自动化测试 自动化测试工具与 Flex 应用程序之间是通过代理 (Agent) 来交互的, 如图所示 : 这也就是为什么后面在使用 QTP 进行 Flex 自动化测试之前要先安装 Flex 插件 配置和编译 Flex 程序的原因 前提条件 在使用 QTP 进行 Flex 4 的测试之前,

More information

建模与图形思考

建模与图形思考 C03_c 基 於 軟 硬 整 合 觀 點 JNI: 从 C 调 用 Java 函 数 ( c) By 高 煥 堂 3 How-to: 基 於 軟 硬 整 合 觀 點 从 C 调 用 Java 函 数 如 果 控 制 点 摆 在 本 地 C 层, 就 会 常 常 1. 从 本 地 C 函 数 去 调 用 Java 函 数 ; 2. 从 本 地 C 函 数 去 存 取 Java 层 对 象 的 属 性

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

Microsoft PowerPoint - 02-Servlet-Basics-Chinese.ppt

Microsoft PowerPoint - 02-Servlet-Basics-Chinese.ppt 2004 Marty Hall servlet 基础 JSP, Servlet, & Struts Training Courses: http://courses.coreservlets.com Available in US, China, Taiwan, HK, and Worldwide 2 JSP and Servlet Books from Sun Press: http://www.coreservlets.com

More information

Java 1 Java String Date

Java 1 Java String Date JAVA SCJP Java 1 Java String Date 1Java 01 Java Java 1995 Java Java 21 Java Java 5 1-1 Java Java 1990 12 Patrick Naughton C++ C (Application Programming Interface API Library) Patrick Naughton NeXT Stealth

More information

Hive:用Java代码通过JDBC连接Hiveserver

Hive:用Java代码通过JDBC连接Hiveserver Hive: 用 Java 代码通过 JDBC 连接 Hiveserver 我们可以通过 CLI Client Web UI 等 Hive 提供的用户接口来和 Hive 通信, 但这三种方式最常用的是 CLI;Client 是 Hive 的客户端, 用户连接至 Hive Server 在启动 Client 模式的时候, 需要指出 Hive Server 所在节点, 并且在该节点启动 Hive Server

More information

水晶分析师

水晶分析师 大数据时代的挑战 产品定位 体系架构 功能特点 大数据处理平台 行业大数据应用 IT 基础设施 数据源 Hadoop Yarn 终端 统一管理和监控中心(Deploy,Configure,monitor,Manage) Master Servers TRS CRYSTAL MPP Flat Files Applications&DBs ETL&DI Products 技术指标 1 TRS

More information

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat 本章学习目标 小风 Java 实战系列教程 AOP 思想概述 AOP 底层技术实现 AOP 术语介绍 SpringAOP 的 XML 方式 HelloWorld SpringAOP 的 XML 方式配置细节 SpringAOP 的注解方式 SpringAOP 的零配置方式 1. AOP 思想概述 1.1. AOP 思想简介 1.2. AOP 的作用 2. AOP 底层技术实现 小风 Java 实战系列教程

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 章.1 Android UI 基本概念 用户界面 (User Interface,UI) 是用户与设备之间进行信息交流的直接媒介, 是决定用户体验最重要的部分 相比于早期的计算机的主要交互界面 批处理界面和命令行界面, 现在更为流行的是更简单直接的用户图形界面 (Graphical User Interface, GUI) GUI 简单易用, 受众面广, 直接推动了个人计算机的发展 目前, 主流大众的操作系统都采用了

More information

Android 教學

Android 教學 Android 教 學 2012/3/27 Presented by : Wun-ling E-mail: wunling@iir.csie.ncku.edu.tw Advisor: Dr. Chiang 大 綱 Android 介 紹 Android 環 境 設 定 應 用 程 式 架 構 Manifest 定 義 檔 資 源 檔 設 計 UI 元 件 設 計 硬 體 元 件 Sample 2012/3/27

More information

概述

概述 Android Material Design 基础 北京理工大学计算机学院金旭亮 概述 概述 Material Design 是 Google 提出的一种 UI 设计风格, 主要用在 Android App 的开发中, 同时, 也为 AngularJS 提供了相应的组件, 可以用于开发具有 Material Design 风格的网页 设置 Material 主题 Material Design 其实是一种

More information

工程项目进度管理 西北工业大学管理学院 黄柯鑫博士 甘特图 A B C D E F G 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 甘特图的优点 : 直观明了 ( 图形化概要 ); 简单易懂 ( 易于理解 ); 应用广泛 ( 技术通用 ) 甘特图的缺点 : 不能清晰表示活动间的逻辑关系 WBS 责任分配矩阵 ( 负责〇审批

More information

「西醫基層總額支付委員會《第28次委員會議紀錄

「西醫基層總額支付委員會《第28次委員會議紀錄 西 醫 基 層 總 額 支 付 委 員 會 101 年 第 2 次 委 員 會 議 紀 錄 時 間 :101 年 5 月 23 日 下 午 2 時 地 點 : 中 央 健 康 保 險 局 18 樓 會 議 室 ( 台 北 市 信 義 路 3 段 140 號 18 樓 ) 主 席 : 黃 召 集 人 三 桂 出 席 委 員 : 王 委 員 正 坤 王 委 員 錦 基 古 委 員 博 仁 王 正 坤 王

More information

可 Web 编程的NativeUI 设计与实现

可 Web 编程的NativeUI  设计与实现 可 Web 编程的 NativeUI 设计与实现 张袁炜 zhangyuanwei@baidu.com 欢迎转岗简历请发 About Me @ 张袁炜 直达号 网址导航 百度 音乐 前端 Node.js Android Arduino RaspberryPI https://github.com/zhangyuanwei Outline 一个 Hybrid App 的进化史 Native UI 实现原理

More information

Spark读取Hbase中的数据

Spark读取Hbase中的数据 Spark 读取 Hbase 中的数据 Spark 和 Flume-ng 整合, 可以参见本博客 : Spark 和 Flume-ng 整合 使用 Spark 读取 HBase 中的数据 如果想及时了解 Spark Hadoop 或者 Hbase 相关的文章, 欢迎关注微信公共帐号 :iteblog_hadoop 大家可能都知道很熟悉 Spark 的两种常见的数据读取方式 ( 存放到 RDD 中 ):(1)

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63>

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63> 基于 WINCE 平台 C# 编程要点之一 本文主要介绍在基于 Windows CE 平台的英创嵌入式主板下进行 C#(Microsoft Visual Stdio.Net 2005) 应用程序开发时会常常用到的一些功能函数以及开发方法, 这些方法适用于英创采用 WinCE 平台的所有型号嵌入式主板, 包括 EM9000 EM9260 EM9160 等 本文要点包括 : 文件的删除和复制 如何获取存取设备的空间大小

More information

浪潮移动应用平台(IMP) V1.1 开发手册--功能扩展(Android)

浪潮移动应用平台(IMP) V1.1 开发手册--功能扩展(Android) 浪潮移动应用平台 (IMP) V1.1 开发手册 -- 功能扩展 (Android) 文档状态 : 正式稿 浪潮软件股份有限公司 版权声明 浪潮移动应用平台(IMP) V1.1 开发手册 -- 功能扩展 的版权归浪潮软件股份有限公司所有 未经浪潮软件股份有限公司的书面准许, 不得将本文档的任何部分以任何形式 采用任何手段 ( 电子的或机械的, 包括照相复制或录制 ) 或为任何目的, 进行复制或扩散

More information

Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt

Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt 2004 Marty Hall 服务器响应的生成 : HTTP 状态代码 JSP, Servlet, & Struts Training Courses: http://courses.coreservlets.com Available in US, China, Taiwan, HK, and Worldwide 2 JSP and Servlet Books from Sun Press: http://www.coreservlets.com

More information

<4D6963726F736F667420576F7264202D20B5DA33D5C220B3CCD0F2C9E8BCC6BBF9B4A12E646F6378>

<4D6963726F736F667420576F7264202D20B5DA33D5C220B3CCD0F2C9E8BCC6BBF9B4A12E646F6378> Android 应 用 程 序 开 发 与 典 型 案 例 作 者 : 华 清 远 见 第 3 章 程 序 设 计 基 础 本 章 简 介 在 上 一 章 的 学 习 中, 主 要 了 解 了 Eclipse+ADT 的 开 发 流 程, 对 其 有 了 初 步 的 认 识 和 了 解 对 初 学 者 来 说, 这 一 章 的 内 容 比 较 烦 琐, 但 是 又 必 须 掌 握, 这 也 是 进

More information

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

Microsoft Word - CX1000-HMI_程序开发_PLC通讯 用 VB.Net 开发 CX1000 的 HMI 第二部分和 TwinCAT PLC 通讯 一 TwinCAT 动态库 TwinCAT.Ads.dll The TwinCAT.Ads.dll 是一个.NET 类库, 它提供和 ADS 设备通讯的类 如果 TwinCAT PLC 运行在 IPC 上, 则需要添加的类库是路径 \TwinCAT\ADS Api\.NET\v1.1.4322 下的 TwinCAT.Ads.dll

More information

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难 第 1 章 Java 概 述 Java 的 诞 生 Java 的 特 点 Java 开 发 环 境 安 装 与 配 置 创 建 并 运 行 一 个 简 单 的 Java 程 序 Java 语 言 是 当 今 计 算 机 软 件 行 业 中 最 热 门 的 网 络 编 程 语 言, 以 Java 为 核 心 的 芯 片 技 术 编 译 技 术 数 据 库 连 接 技 术, 以 及 基 于 企 业 级

More information

拦截器(Interceptor)的学习

拦截器(Interceptor)的学习 二 拦截器 (Interceptor) 的学习 拦截器可以监听程序的一个或所有方法 拦截器对方法调用流提供了细粒度控制 可以在无状态会话 bean 有状态会话 bean 和消息驱动 bean 上使用它们 拦截器可以是同一 bean 类中的方法或是一个外部类 下面介绍如何在 Session Bean 类中使用外部拦截器类 @Interceptors 注释指定一个或多个在外部类中定义的拦截器 下面拦截器

More information

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1 Chapter 01 Photoshop CS6 的基本操作 本章内容 1.1 Photoshop 的应用领域 1.6 控制面板的显示与隐藏 1.2 位图和矢量图的特性 1.7 新建 打开与保存文件 1.3 像素和分辨率的关系 1.8 图像的缩放 1.4 色彩模式 1.9 屏幕显示模式 1.5 Photoshop CS6 界面 1.10 计算机图形图像常用的色彩模式 Photoshop CS6 艺术设计案例教程

More information