发生在它被销毁或者另一个 activity( 可能是现存 的或者是新的 ) 回到运行状态并覆盖了它 or ondestroy() 如果 activity 再次回到前台跟用户交互则继以 onrestart(), 如果关闭 activity 则继以 ondestroy() 在 activity 销毁前调

Size: px
Start display at page:

Download "发生在它被销毁或者另一个 activity( 可能是现存 的或者是新的 ) 回到运行状态并覆盖了它 or ondestroy() 如果 activity 再次回到前台跟用户交互则继以 onrestart(), 如果关闭 activity 则继以 ondestroy() 在 activity 销毁前调"

Transcription

1 1.activity 的生命周期 Android 应用开发概念汇总 可 方法 描述 被杀 下一个 死 在 activity 第一次被创建的时候调用 这里是你做 所有初始化设置的地方 创建视图 绑定数据至 列表等 如果曾经有状态记录 ( 参阅后述 oncreate() Saving Activity State ), 则调用此方法时会传入 一个包含着此 activity 以前状态的包对象做为参 数 否 onstart() onrestart() 总继之以 onstart() 在 activity 停止后, 在再次启动之前被调用 总继之以 onstart() 否 onstart() 当 activity 正要变得为用户所见时被调用 onresume() onstart() 当 activity 转向前台时继以 onresume(), 在 activity 变为隐藏时继以 onstop() 否 or onstop() 在 activity 开始与用户进行交互之前被调用 此时 onresume() activity 位于堆栈顶部, 并接受用户输入 继之以 onpause() 当系统将要启动另一个 activity 时调用 此方法主要用来将未保存的变化进行持久化, 停止类似动画 否 onpause() onpause() 这样耗费 CPU 的动作等 这一切动作应该在短时间内完成, 因为下一个 activity 必须等到此方法返回是后才会继续 当 activity 重新回到前台是继以 onresume() 当 activity 变为用户不可见时继以 onstop() onresume() or onstop() onstop() 当 activity 不再为用户可见时调用此方法 这可能是 onrestart()

2 发生在它被销毁或者另一个 activity( 可能是现存 的或者是新的 ) 回到运行状态并覆盖了它 or ondestroy() 如果 activity 再次回到前台跟用户交互则继以 onrestart(), 如果关闭 activity 则继以 ondestroy() 在 activity 销毁前调用 这是 activity 接收的最后 一个调用 这可能发生在 activity 结束 ( 调用了它 ondestroy() 的 finish() 方法 ) 或者因为系统需要空间所以临时的是 nothing 销毁了此 acitivity 的实例时 你可以用 isfinishing() 方法来区分这两种情况 2. 横竖屏切换时候 activity 的生命周期 1. 不设置 Activity 的 android:configchanges 时, 切屏会重新调用各个生命周期, 切横屏时会执行 一次, 切竖屏时会执行两次. 2. 设置 Activity 的 android:configchanges="orientation" 时, 切屏还是会重新调用各个生命周期, 切横 竖屏时只会执行一次. 3. 设置 Activity 的 android:configchanges="orientation keyboardhidden" 时, 切屏不会重新调用 各个生命周期, 只会执行 onconfigurationchanged 方法. 3.android 中的动画有哪几类, 它们的特点和区别是什么? 两种, 一种是 Tween 动画 还有一种是 Frame 动画 Tween 动画, 这种实现方式可以 使视图组件移动 放大 缩小以及产生透明度的变化 ; 另一种 Frame 动画, 传统的动画方法, 通过顺序的播放排列好的图片来实现, 类似电影 4. 一条最长的短信息约占多少 byte? 中文 70( 包括标点 ), 英文 160 个字节 5.handler 机制的原理 andriod 提供了 Handler 和 Looper 来满足线程间的通信 Handler 先进先出原则 Looper 类用来管理特定线程内对象之间的消息交换 (Message Exchange)

3 1)Looper: 一个线程可以产生一个 Looper 对象, 由它来管理此线程里的 Message Queue( 消息队列 ) 2)Handler: 你可以构造 Handler 对象来与 Looper 沟通, 以便 push 新消息到 Message Queue 里 ; 或者接收 Looper 从 Message Queue 取出 ) 所送来的消息 3) Message Queue( 消息队列 ): 用来存放线程放入的消息 4) 线程 :UI thread 通常就是 main thread, 而 Android 启动程序时会替它建立一个 Message Queue 6. 什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统 吗? 嵌入式实时操作系统是指当外界事件或数据产生时, 能够接受并以足够快的速度予以处理, 其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应, 并控制所有实时任务协调一致运行的嵌入式操作系统 主要用于工业控制 军事设备 航空航天等领域对系统的响应时间有苛刻的要求, 这就需要使用实时系统 又可分为软实时和硬实时两种, 而 android 是基于 linux 内核的, 因此属于软实时 7.android 中线程与线程, 进程与进程之间如何通信 1 一个 Android 程序开始运行时, 会单独启动一个 Process 默认情况下, 所有这个程序中的 Activity 或者 Service 都会跑在这个 Process 默认情况下, 一个 Android 程序也只有一个 Process, 但一个 Process 下却可以有许多个 Thread 2 一个 Android 程序开始运行时, 就有一个主线程 Main Thread 被创建 该线程主要负责 UI 界面的显示 更新和控件交互, 所以又叫 UI Thread 一个 Android 程序创建之初, 一个 Process 呈现的是单线程模型 即 Main Thread, 所有的任务都在一个线程中运行 所以,Main Thread 所调用的每一个函数, 其耗时应该越短越好 而对于比较费时的工作, 应该设法交给子线程去做, 以避免阻塞主线程 ( 主线程被阻塞, 会导致程序假死现象 )

4 3 Android 单线程模型 :Android UI 操作并不是线程安全的并且这些操作必须在 UI 线程中 执行 如果在子线程中直接修改 UI, 会导致异常 8.Android dvm 的进程和 Linux 的进程, 应用程序的进程是否为同一个 概念 DVM 指 dalivk 的虚拟机 每一个 Android 应用程序都在它自己的进程中运行, 都拥有 一个独立的 Dalvik 虚拟机实例 而每一个 DVM 都是在 Linux 中的一个进程, 所以说可以认 为是同一个概念 9.sim 卡的 EF 文件有何作用 sim 卡的文件系统有自己规范, 主要是为了和手机通讯,sim 本身可以有自己的操作系 统,EF 就是作存储并和手机通讯用的 10.android 中的动画有哪几类, 它们的特点和区别是什么? 两种, 一种是 Tween 动画 还有一种是 Frame 动画 Tween 动画, 这种实现方式可 以使视图组件移动 放大 缩小以及产生透明度的变化 ; 另一种 Frame 动画, 传统的动画方 法, 通过顺序的播放排列好的图片来实现, 类似电影 11. 让 Activity 变成一个窗口 :Activity 属性设定 讲点轻松的吧, 可能有人希望做出来的应用程序是一个漂浮在手机主界面的东西, 那么 很简单你只需要设置一下 Activity 的主题就可以了在 AndroidManifest.xml 中定义 Activity 的地方一句话 : Xml 代码 1. android :theme="@android:style/theme.dialog" 这就使你的应用程序变成对话框的形式弹出来了, 或者 Xml 代码 1. android:theme="@android:style/theme.translucent"

5 就变成半透明的,[ 友情提示. ] 类似的这种 activity 的属性可以在 android.r.styleable 类 的 AndroidManifestActivity 方法中看到,AndroidManifest.xml 中所有元素的属性的介绍都 可以参考这个类 android.r.styleable 上面说的是属性名称, 具体有什么值是在 android.r.style 中可以看到, 比如这个 "@android:style/theme.dialog" 就对应于 android.r.style.theme_dialog,('_' 换成 '.' < 注意 : 这个是文章内容不是笑脸 ) 就可以用在描述文件中了, 找找类定义和描述文件中的对应关系就都明白了 12. 如何将 SQLite 数据库 (dictionary.db 文件 ) 与 apk 文件一起发布? 解答 : 可以将 dictionary.db 文件复制到 Eclipse Android 工程中的 res aw 目录中 所 有在 res aw 目录中的文件不会被压缩, 这样可以直接提取该目录中的文件 可以将 dictionary.db 文件复制到 res aw 目录中 13. 如何将打开 res aw 目录中的数据库文件? 解答 : 在 Android 中不能直接打开 res aw 目录中的数据库文件, 而需要在程序第一次启动时将该文件复制到手机内存或 SD 卡的某个目录中, 然后再打开该数据库文件 复制的基本方法是使用 getresources().openrawresource 方法获得 res aw 目录中资源的 InputStream 对象, 然后将该 InputStream 对象中的数据写入其他的目录中相应文件中 在 Android SDK 中可以使用 SQLiteDatabase.openOrCreateDatabase 方法来打开任意目录中的 SQLite 数据库文件 14. 在 android 中 mvc 的具体体现 Android 的官方建议应用程序的开发采用 MVC 模式 何谓 MVC? 先看看下图 MVC 是 Model,View,Controller 的缩写, 从上图可以看出 MVC 包含三个部分 :.. 模型 (Model) 对象 : 是应用程序的主体部分, 所有的业务逻辑都应该写在该 层.. 视图 (View) 对象 : 是应用程序中负责生成用户界面的部分 也是在整个 MVC 架构中用户唯一可以看到的一层, 接收用户的输入, 显示处理结果

6 .. 控制器 (Control) 对象 : 是根据用户的输入, 控制用户界面数据显示及更新 Model 对象状态的部分, 控制器更重要的一种导航功能, 想用用户出发的相 关事件, 交给 M 哦得了处理 Android 鼓励弱耦合和组件的重用, 在 Android 中 MVC 的具体体现如下 1) 视图层 (view): 一般采用 xml 文件进行界面的描述, 使用的时候可以非常方便的引入, 当然, 如何你对 android 了解的比较的多了话, 就一定可以想到在 android 中也可以使用 javascript+html 等的方式作为 view 层, 当然这里需要进行 java 和 javascript 之间的通信, 幸运的是,android 提供了它们之间非常方便的通信实现 2) 控制层 (controller):android 的控制层的重任通常落在了众多的 acitvity 的肩上, 这句话也就暗含了不要在 acitivity 中写代码, 要通过 activity 交割 model 业务逻辑层处理, 这 样做的另外一个原因是 android 中的 acitivity 的响应时间是 5s, 如果耗时的操作放在这里, 程序就很容易被回收掉 3) 模型层 (model): 对数据库的操作 对网络等的操作都应该在 model 里面处理, 当 然对业务计算等操作也是必须放在的该层的 15.Android 系统的架构 android 的系统架构和其操作系统一样, 采用了分层的架构 从架构图看,android 分为四个 层, 从高层到低层分别是应用程序层 应用程序框架层 系统运行库层和 linux 核心层 1. 应用程序 Android 会同一系列核心应用程序包一起发布, 该应用程序包包括 客户端,SMS 短消息程序, 日历, 地图, 浏览器, 联系人管理程序等 所有的应用程序都是使用 JAVA 语 言编写的 2. 应用程序框架 开发人员也可以完全访问核心应用程序所使用的 API 框架 该应用程序的架构设计简化了组件的重用 ; 任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块 ( 不过得遵循框架的安全性限制 ) 同样, 该应用程序重用机制也使用户可以方便的替换程序组件

7 隐藏在每个应用后面的是一系列的服务和系统, 其中包括 ; * 丰富而又可扩展的视图 (Views), 可以用来构建应用程序, 它包括列表 (lists), 网格 (grids), 文本框 (text boxes), 按钮 (buttons), 甚至可嵌入的 web 浏览器 * 内容提供器 (Content Providers) 使得应用程序可以访问另一个应用程序的数据 ( 如联系 人数据库 ), 或者共享它们自己的数据 * 资源管理器 (Resource Manager) 提供非代码资源的访问, 如本地字符串, 图形, 和布 局文件 ( layout files ) 信息 * 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示 能 * 活动管理器 ( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功 有关更多的细节和怎样从头写一个应用程序, 请参考如何编写一个 Android 应用程序. 3. 系统运行库 1) 程序库 Android 包含一些 C/C++ 库, 这些库能被 Android 系统中不同的组件使用 它们通 过 Android 应用程序框架为开发者提供服务 以下是一些核心库 : * 系统 C 库 一个从 BSD 继承来的标准 C 系统函数库 ( libc ), 它是专门为基 于 embedded linux 的设备定制的 * 媒体库 基于 PacketVideo OpenCORE; 该库支持多种常用的音频 视频格式回放和录 制, 同时支持静态图像文件 编码格式包括 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG * Surface Manager 对显示子系统的管理, 并且为多个应用程序提供了 2D 和 3D 图层 的无缝融合 视图 * LibWebCore 一个最新的 web 浏览器引擎用, 支持 Android 浏览器和一个可嵌入的 web * SGL 底层的 2D 图形引擎

8 * 3D libraries 基于 OpenGL ES 1.0 APIs 实现 ; 该库可以使用硬件 3D 加速 ( 如果可用 ) 或者 使用高度优化的 3D 软加速 * FreeType 位图 (bitmap) 和矢量 (vector) 字体显示 * SQLite 一个对于所有应用程序可用, 功能强劲的轻型关系型数据库引擎 2)Android 运行库 Android 包括了一个核心库, 该核心库提供了 JAVA 编程语言核心库的大多数功能 每一个 Android 应用程序都在它自己的进程中运行, 都拥有一个独立的 Dalvik 虚拟机实例 Dalvik 被设计成一个设备可以同时高效地运行多个虚拟系统 Dalvik 虚拟机执行 (.dex) 的 Dalvik 可执行文件, 该格式文件针对小内存使用做了优化 同时虚拟机是基于寄存器的, 所有的类都经由 JAVA 编译器编译, 然后通过 SDK 中的 dx 工具转化成.dex 格式由虚拟机执行 Dalvik 虚拟机依赖于 linux 内核的一些功能, 比如线程机制和底层内存管理机制 4.Linux 内核 Android 的核心系统服务依赖于 Linux 2.6 内核, 如安全性, 内存管理, 进程管理, 网络协 议栈和驱动模型 Linux 内核也同时作为硬件和软件栈之间的抽象层 16.Android 常用控件的信息 单选框 (RadioButton 与 RadioGroup): RadioGroup 用于对单选框进行分组, 相同组内的单选框只有一个单选框被选中 事件 :setoncheckedchangelistener(), 处理单选框被选择事件 把 RadioGroup.OnCheckedChangeListener 实例作为参数传入 多选框 (CheckBox): 每个多选框都是独立的, 可以通过迭代所有的多选框, 然后根据其状态是否被选中在获取其 值

9 事件 :setoncheckchangelistener() 处理多选框被选择事件 把 CompoundButton.OnCheckedChangeListener 实例作为参数传入 下拉列表框 (Spring): Spinner.getItemAtPosition(Spinner.getSelectedItemPosition()); 获取下拉列表框的值 事件 :setonitemselectedlistener(), 处理下拉列表框被选择事件把 AdapterView.OnItemSelectedListener 实例作为参数传入 ; 拖动条 (SeekBar): SeekBar.getProgress() 获取拖动条当前值 事件 :setonseekbarchangelistener(), 处理拖动条值变化事件, 把 SeekBar.OnSeekBarChangeListener 实例作为参数传入 菜单 (Menu): 重写 Activity 的 oncreatoptionmenu(menu menu) 方法, 该方法用于创建选项菜单, 咋用户按 下手机的 "Menu" 按钮时就会显示创建好的菜单, 在 oncreatoptionmenu(menu Menu) 方法内 部可以调用 Menu.add() 方法实现菜单的添加 重写 Activity 的 onmenuitemselected() 方法, 该方法用于处理菜单被选择事件 进度对话框 (ProgressDialog): 创建并显示一个进度对话框 :ProgressDialog.show(ProgressDialogActivity.this," 请稍等 "," 数据 正在加载中...",true); 设置对话框的风格 :setprogressstyle() ProgressDialog.STYLE_SPINNER 旋转进度条风格 ( 为默认风格 ) ProgressDialog.STYLE_HORIZONTAL 横向进度条风格 17. 请介绍下 Android 中常用的五种布局

10 Android 布局是应用界面开发的重要一环, 在 Android 中, 共有五种布局方式, 分别是 : FrameLayout( 框架布局 ),LinearLayout ( 线性布局 ), AbsoluteLayout( 绝对布局 ),RelativeLayout( 相对布局 ),TableLayout( 表格布局 ) 1.FrameLayout 这个布局可以看成是墙脚堆东西, 有一个四方的矩形的左上角墙脚, 我们放了第一个东 西, 要再放一个, 那就在放在原来放的位置的上面, 这样依次的放, 会盖住原来的东西 这 个布局比较简单, 也只能放一点比较简单的东西 2.LinearLayout 线性布局, 这个东西, 从外框上可以理解为一个 div, 他首先是一个一个从上往下罗列在屏幕上 每一个 LinearLayout 里面又可分为垂直布局 (android:orientation="vertical") 和水平布局 (android:orientation="horizontal" ) 当垂直布局时, 每一行就只有一个元素, 多个元素依次垂直往下 ; 水平布局时, 只有一行, 每一个元素依次向右排列 linearlayout 中有一个重要的属性 android:layout_weight="1", 这个 weight 在垂直布局时, 代表行距 ; 水平的时候代表列宽 ;weight 值越大就越大 3.AbsoluteLayout 绝对布局犹如 div 指定了 absolute 属性, 用 X,Y 坐标来指定元素的位置 android:layout_x="20px" android:layout_y="12px" 这种布局方式也比较简单, 但是在垂直随便 切换时, 往往会出问题, 而且多个元素的时候, 计算比较麻烦 4.RelativeLayout 相对布局可以理解为某一个元素为参照物, 来定位的布局方式 主要属性有 : 相对于某一个元素 android:layout_below="@id/aaa" 该元素在 id 为 aaa 的下面 android:layout_toleftof="@id/bbb" 改元素的左边是 bbb 相对于父元素的地方 android:layout_alignparentleft="true" 在父元素左对齐

11 android:layout_alignparentright="true" 在父元素右对齐 还可以指定边距等, 具体详见 API 5.TableLayout 表格布局类似 Html 里面的 Table 每一个 TableLayout 里面有表格行 TableRow, TableRow 里面可以具体定义每一个元素, 设定他的对齐方式 android:gravity="" 每一个布局都有自己适合的方式, 另外, 这五个布局元素可以相互嵌套应用, 做出美观 的界面 18. 如何启用 Service, 如何停用 Service Android 中的服务和 windows 中的服务是类似的东西, 服务一般没有用户操作界面, 它运行 于系统中不容易被用户发觉, 可以使用它开发如监控之类的程序 服务的开发比较简单, 如 下 : 第一步 : 继承 Service 类 public class SMSService extends Service { } 第二步 : 在 AndroidManifest.xml 文件中的 <application> 节点里对服务进行配置 : <service android:name=".smsservice" /> 服务不能自己运行, 需要通过调用 Context.startService() 或 Context.bindService() 方法启动服 务 这两个方法都可以启动 Service, 但是它们的使用场合有所不同 使用 startservice() 方法 启用服务, 调用者与服务之间没有关连, 即使调用者退出了, 服务仍然运行 使用 bindservice() 方法启用服务, 调用者与服务绑定在了一起, 调用者一旦退出, 服务也就终止, 大有 不求 同时生, 必须同时死 的特点

12 如果打算采用 Context.startService() 方法启动服务, 在服务未被创建时, 系统会先调用服务的 oncreate() 方法, 接着调用 onstart() 方法 如果调用 startservice() 方法前服务已经被创建, 多次调用 startservice() 方法并不会导致多次创建服务, 但会导致多次调用 onstart() 方法 采用 startservice() 方法启动的服务, 只能调用 Context.stopService() 方法结束服务, 服务结束时会调用 ondestroy() 方法 如果打算采用 Context.bindService() 方法启动服务, 在服务未被创建时, 系统会先调用服务的 oncreate() 方法, 接着调用 onbind() 方法 这个时候调用者和服务绑定在一起, 调用者退出 了, 系统就会先调用服务的 onunbind() 方法, 接着调用 ondestroy() 方法 如果调用 bindservice() 方法前服务已经被绑定, 多次调用 bindservice() 方法并不会导致多次创建服务及绑定 ( 也就是 说 oncreate() 和 onbind() 方法并不会被多次调用 ) 如果调用者希望与正在绑定的服务解除绑 定, 可以调用 unbindservice() 方法, 调用该方法也会导致系统调用服务的 onunbind() >ondestroy() 方法 服务常用生命周期回调方法如下 : oncreate() 该方法在服务被创建时调用, 该方法只会被调用一次, 无论调用多少次 startservice() 或 bindservice() 方法, 服务也只被创建一次 ondestroy() 该方法在服务被终止时调用 与采用 Context.startService() 方法启动服务有关的生命周期方法 onstart() 只有采用 Context.startService() 方法启动服务时才会回调该方法 该方法在服务开 始运行时被调用 多次调用 startservice() 方法尽管不会多次创建服务, 但 onstart() 方法会被 多次调用 与采用 Context.bindService() 方法启动服务有关的生命周期方法 onbind() 只有采用 Context.bindService() 方法启动服务时才会回调该方法 该方法在调用者与 服务绑定时被调用, 当调用者与服务已经绑定, 多次调用 Context.bindService() 方法并不会导 致该方法被多次调用

13 onunbind() 只有采用 Context.bindService() 方法启动服务时才会回调该方法 该方法在调用者 与服务解除绑定时被调用 [java] view plaincopyprint? 1. 采用 Context. bindservice() 方法启动服务的代码如下 : 2. public class HelloActivity extends Activity { 3. ServiceConnection conn = new ServiceConnection() { 4. public void onserviceconnected(componentname name, IBinder ser vice) { 5. } 6. public void onservicedisconnected(componentname name) { 7. } 8. }; 10. public void oncreate(bundle savedinstancestate) { 11. Button button =(Button) this.findviewbyid(r.id.button); 12. button.setonclicklistener(new View.OnClickListener(){ 13. public void onclick(view v) { 14. Intent intent = new Intent(HelloActivity.this, SMSService. class); 15. bindservice(intent, conn, Context.BIND_AUTO_CREATE); 16. //unbindservice(conn);// 解除绑定 17. }}); 18. } 19. } 19.ListView 优化 工作原理 : ListView 针对 List 中每个 item, 要求 adapter 给我一个视图 (getview) 一个新的视图被返回并显示 如果我们有上亿个项目要显示怎么办? 为每个项目创建一个新视图?NO! 这不可能! 实际上 Android 为你缓存了视图 Android 中有个叫做 Recycler 的构件, 下图是他的工作原理 :

14 如果你有 10 亿个项目 (item), 其中只有可见的项目存在内存中, 其他的在 Recycler 中 1. ListView 先请求一个 type1 视图 (getview) 然后请求其他可见的项目 convertview 在 getview 中是空 (null) 的 2. 当 item1 滚出屏幕, 并且一个新的项目从屏幕低端上来时,ListView 再请求一个 type1 视图 convertview 此时不是空值了, 它的值是 item1 你只需设定新的数据然后返回 convertview, 不必重新创建一个视图 20 广播接收者生命周期 一个广播接收者有一个回调方法 : void onreceive(context curcontext, Intent broadcastmsg) 当一个广播消息到达接收者是,Android 调用它的 onreceive() 方法并传递给它包含消息的 Intent 对象 广播接收者被认为仅当它执行这个方法时是活跃的 当 onreceive() 返回后, 它是不活跃的 有一个活跃的广播接收者的进程是受保护的, 不会被杀死 但是系统可以在任何时候杀死仅 有不活跃组件的进程, 当占用的内存别的进程需要时 这带来一个问题, 当一个广播消息的响应时费时的, 因此应该在独立的线程中做这些事, 远离用户界面其它组件运行的主线程 如果 onreceive() 衍生线程然后返回, 整个进程, 包括新的线程, 被判定为不活跃的 ( 除非进程中的其它应用程序组件是活跃的 ), 将使它处于被杀的危机 解决这个问题的方法是 onreceive() 启动一个服务, 及时服务做这个工作, 因此系统知道进程中有活跃的工作在做 21. 设计模式和 IoC( 控制反转 ) Android 框架魅力的源泉在于 IoC, 在开发 Android 的过程中你会时刻感受到 IoC 带来 的巨大方便, 就拿 Activity 来说, 下面的函数是框架调用自动调用的 : protected void oncreate(bundle savedinstancestate) ; 不是程序编写者主动去调用, 反而是用户写的代码被框架调用, 这也就反转 了! 当然 IoC 本身的内涵远远不止这些, 但是从这个例子中也可以窥视出 IoC 带来的巨大好处 此类的例子在 Android 随处可见, 例如说数据库的管理类,

15 例如说 Android 中 SAX 的 Handler 的调用等 有时候, 您甚至需要自己编写简 单的 IoC 实现, 上面展示的多线程现在就是一个说明 22.Android 中的长度单位详解 现在这里介绍一下 dp 和 sp dp 也就是 dip 这个和 sp 基本类似 如果设置表示长度 高度等属性时可以使用 dp 或 sp 但如果设置字体, 需要使用 sp dp 是与密度无关,sp 除了与密度无关外, 还与 scale 无关 如果屏幕密度为 160, 这时 dp 和 sp 和 px 是一样的 1dp=1sp=1px, 但如果使用 px 作单位, 如果屏幕大小不变 ( 假设还是 3.2 寸 ), 而屏幕密度变成了 320 那么原来 TextView 的宽度设成 160px, 在密度为 320 的 3.2 寸屏幕里看要比在密度为 160 的 3.2 寸屏幕上看短了一半 但如果设置成 160dp 或 160sp 的话 系统会自动将 width 属性值设置成 320px 的 也就是 160 * 320 / 160 其中 320 / 160 可称为密 度比例因子 也就是说, 如果使用 dp 和 sp, 系统会根据屏幕密度的变化自动 进行转换 下面看一下其他单位的含义 px: 表示屏幕实际的象素 例如,320*480 的屏幕在横向有 320 个象素, 在纵向有 480 个象素 in: 表示英寸, 是屏幕的物理尺寸 每英寸等于 2.54 厘米 例如, 形容 手机屏幕大小, 经常说,3.2( 英 ) 寸 3.5( 英 ) 寸 4( 英 ) 寸就是指这个 单位 这些尺寸是屏幕的对角线长度 如果手机的屏幕是 3.2 英寸, 表示手机 的屏幕 ( 可视区域 ) 对角线长度是 3.2*2.54 = 厘米 读者可以去量 一量自己的手机屏幕, 看和实际的尺寸是否一致 种 activity 的启动模式 standard: 标准模式, 一调用 startactivity() 方法就会产生一个新的实例

16 singletop: 如果已经有一个实例位于 Activity 栈的顶部时, 就不产生新的实例, 而只是调用 Activity 中的 newinstance() 方法 如果不位于栈顶, 会产生一个新的实例 singletask: 会在一个新的 task 中产生这个实例, 以后每次调用都会使用这个, 不会去产生 新的实例了 singleinstance: 这个跟 singletask 基本上是一样, 只有一个区别 : 在这个模式下的 Activity 实例所处的 task 中, 只能有这个 activity 实例, 不能有其他的实例 24. 什么是 ANR 如何避免它? ANR:Application Not Responding, 五秒 在 Android 中, 活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应 当出现 下列情况时,Android 就会显示 ANR 对话框了 : 对输入事件 ( 如按键 触摸屏事件 ) 的响应超过 5 秒 意向接受器 (intentreceiver) 超过 10 秒钟仍未执行完毕 Android 应用程序完全运行在一个独立的线程中 ( 例如 main) 这就意味着, 任何在主线 程中运行的, 需要消耗大量时间的操作都会引发 ANR 因为此时, 你的应用程序已经没有机 会去响应输入事件和意向广播 (Intent broadcast) 因此, 任何运行在主线程中的方法, 都要尽可能的只做少量的工作 特别是活动生命周期中的重要方法如 oncreate() 和 onresume() 等更应如此 潜在的比较耗时的操作, 如访问网络和数据库 ; 或者是开销很大的计算, 比如改变位图的大小, 需要在一个单独的子线程中完成 ( 或者是使用异步请求, 如数据库操作 ) 但这并不意味着你的主线程需要进入阻塞状态已等待子线程结束 也不需要调用 Therad.wait() 或者 Thread.sleep() 方法 取而代之的是, 主线程为子线程提供一个句柄 (Handler), 让子线程在即将结束的时候调用它 (xing: 可以参看 Snake 的例子, 这种方法与以前我们所接触的有所不同 ) 使用这种方法涉及你的应用程序, 能够保证你的程序对输入保持良好的响应, 从而避免因为输入事件超过 5 秒钟不被处理而产生的 ANR 这种实践需要应用到所有显示用户界面的线程, 因为他们都面临着同样的超时问题 25.Android Intent 的使用

17 在一个 Android 应用中, 主要是由一些组件组成,(Activity,Service,ContentProvider,etc.) 在这些组件之间的通讯中, 由 Intent 协助完成 正如网上一些人解析所说,Intent 负责对应用中一次操作的动作 动作涉及数据 附加数据进行描述,Android 则根据此 Intent 的描述, 负责找到对应的组件, 将 Intent 传递给调用的组件, 并完成组件的调用 Intent 在这里起着实现调用者与被调用者之间的解耦作用 Intent 传递过程中, 要找到目标消费者 ( 另一个 Activity,IntentReceiver 或 Service), 也就是 Intent 的响应者, 有两种方法来匹配 : 1, 显示匹配 (Explicit): [java] view plaincopyprint? 1. public TestB extents Activity 2. { }; 5. public class Test extends Activity 6. { public void switchactivity() 9. { 10. Intent i = new Intent(Test.this, TestB.class); 11. this.startactivity(i); 12. } 13. } 代码简洁明了, 执行了 switchactivity() 函数, 就会马上跳转到名为 TestB 的 Activity 中 2, 隐式匹配 (Implicit): 隐式匹配, 首先要匹配 Intent 的几项值 :Action, Category, Data/Type,Component 如果填写了 Componet 就是上例中的 Test.class) 这就形成了显示匹配 所以此部分只讲前 几种匹配 匹配规则为最大匹配规则, 1, 如果你填写了 Action, 如果有一个程序的 Manifest.xml 中的某一个 Activity 的 IntentFilter 段中定义了包含了相同的 Action 那么这个 Intent 就与这个目标 Action 匹配, 如果这个 Filter 段中没有定义 Type,Category, 那么这个 Activity 就匹配了 但是如果手机中有两个以上的 程序匹配, 那么就会弹出一个对话可框来提示说明 Action 的值在 Android 中有很多预定义, 如果你想直接转到你自己定义的 Intent 接收者, 你 可以在接收者的 IntentFilter 中加入一个自定义的 Action 值 ( 同时要设定 Category 值为 "android.intent.category.default"), 在你的 Intent 中设定该值为 Intent 的 Action, 就直接

18 能跳转到你自己的 Intent 接收者中 因为这个 Action 在系统中是唯一的 2,data/type, 你可以用 Uri 来做为 data, 比如 Uri uri = Uri.parse( ); Intent i = new Intent(Intent.ACTION_VIEW,uri); 手机的 Intent 分发过程中, 会根据 的 scheme 判断出数据类型 type 手机的 Brower 则能匹配它, 在 Brower 的 Manifest.xml 中的 IntenFilter 中首先有 ACTION_VIEW Action, 也能处理 http: 的 type, 3, 至于分类 Category, 一般不要去在 Intent 中设置它, 如果你写 Intent 的接收者, 就在 Manifest.xml 的 Activity 的 IntentFilter 中包含 android.category.default, 这样所有不设置 Category(Intent.addCategory(String c);) 的 Intent 都会与这个 Category 匹配 4,extras( 附加信息 ), 是其它所有附加信息的集合 使用 extras 可以为组件提供扩展信息, 比如, 如果要执行 发送电子邮件 这个动作, 可以将电子邮件的标题 正文等保存在 extras 里, 传给电子邮件发送组件 26. 如果后台的 Activity 由于某原因被系统回收了, 如何在被系统回收 之前保存当前状态? 当你的程序中某一个 Activity A 在运行时中, 主动或被动地运行另一个新的 Activity B 这个时候 A 会执行 Java 代码 public void onsaveinstancestate(bundle outstate) { super.onsaveinstancestate(outsta te); outstate.putlong("id", );} B 完成以后又会来找 A, 这个时候就有两种情况, 一种是 A 被回收, 一种是没有被回收, 被回收的 A 就要重新调用 oncreate() 方法, 不同于直接启动的是这回 oncreate() 里是带上参数 savedinstancestate, 没被收回的就还是 onresume 就好了 savedinstancestate 是一个 Bundle 对象, 你基本上可以把他理解为系统帮你维护的一个 Map 对象 在 oncreate() 里你可能会用到它, 如果正常启动 oncreate 就不会有它, 所以 用的时候要判断一下是否为空 Java 代码

19 if(savedinstancestate!= null){ } long id = savedinstancestate.getlong("id"); 就像官方的 Notepad 教程里的情况, 你正在编辑某一个 note, 突然被中断, 那么就把这个 note 的 id 记住, 再起来的时候就可以根据这个 id 去把那个 note 取出来, 程序就完整一些 这也是看你的应用需不需要保存什么, 比如你的界面就是读取一个列表, 那就不需要特殊记住什么, 哦, 没准你需要记住滚动条的位置 如何退出 Activity 对于单一 Activity 的应用来说, 退出很简单, 直接 finish() 即可 当然, 也可以用 killprocess() 和 System.exit() 这样的方法 现提供几个方法, 供参考 : 1 抛异常强制退出: 该方法通过抛异常, 使程序 Force Close 验证可以, 但是, 需要解决的问题是, 如何使程序结束掉, 而不弹出 Force Close 的窗口 2 记录打开的 Activity: 每打开一个 Activity, 就记录下来 在需要退出时, 关闭每一个 Activity 即可 3 发送特定广播: 在需要结束应用时, 发送一个特定的广播, 每个 Activity 收到广播后, 关闭即可 4 递归退出在打开新的 Activity 时使用 startactivityforresult, 然后自己加标志, 在 onactivityresult 中处理, 递归关闭 除了第一个, 都是想办法把每一个 Activity 都结束掉, 间接达到目的 但是这样做同样不完美 你会发现, 如果自己的应用程序对每一个 Activity 都设置了 nosensor, 在两个 Activity 结束的间隙,sensor 可能有效了 但至少, 我们的目的达到了, 而且没有影响用户使用 为了编程方便, 最好定义一个 Activity 基类, 处理这些共通问题 28. 请解释下在单线程模型中 Message Handler Message Queue Looper 之间的关系 Message Queue( 消息队列 ): 用来存放通过 Handler 发布的消息, 通常附属于某一个创建它的线程, 可以通过 Looper.myQueue() 得到当前线程的消息队列 Handler: 可以发布或者处理一个消息或者操作一个 Runnable, 通过 Handler 发布消息, 消息将只会发送到与它关联的消息队列, 然也只能处理该消息队列中的消息 Looper: 是 Handler 和消息队列之间通讯桥梁, 程序组件首先通过 Handler 把消息传递给 Looper,Looper 把消息放入队列 Looper 也把消息队列里的消息广播给所有的

20 处理. Handler,Handler 接受到消息后调用 handlemessage 进行处理 Message: 消息的类型, 在 Handler 类中的 handlemessage 方法中得到单个的消息进行 29. 你如何评价 Android 系统? 优缺点 答 : 优点 :1 学习的开源性 2 软件兼容性比较好 3 软件发展迅速 4 界面布局好缺点 :1 版本过多 2 先有软件少 3 商务性能差 30. 谈谈 android 数据存储方式 Android 提供了 5 种方式存储数据 : (1) 使用 SharedPreferences 存储数据 ; 它是 Android 提供的用来存储一些简单配置信息的 一种机制, 采用了 XML 格式将数据存储到设备中 只能在同一个包内使用, 不能在不同的 包之间使用 (2) 文件存储数据 ; 文件存储方式是一种较常用的方法, 在 Android 中读取 / 写入文件的方 法, 与 Java 中实现 I/O 的程序是完全一样的, 提供了 openfileinput() 和 openfileoutput() 方法 来读取设备上的文件 (3) SQLite 数据库存储数据 ; SQLite 是 Android 所带的一个标准的数据库, 它支持 SQL 语句, 它是一个轻量级的嵌入式数据库 (4) 使用 ContentProvider 存储数据 ; 主要用于应用程序之间进行数据交换, 从而能够让其 他的应用保存或读取此 Content Provider 的各种数据类型 (5) 网络存储数据 ; 通过网络上提供给我们的存储空间来上传 ( 存储 ) 和下载 ( 获取 ) 我们存储 在网络空间中的数据信息 31. Android 中 Activity, Intent, Content Provider, Service 各有什么区 别

21 Activity: 活动, 是最基本的 android 应用程序组件 一个活动就是一个单独的屏幕, 每一个活动都被实现为一个独立的类, 并且从活动基类继承而来 Intent: 意图, 描述应用想干什么 最重要的部分是动作和动作对应的数据 Content Provider: 内容提供器,android 应用程序能够将它们的数据保存到文件 SQLite 数据库中, 甚至是任何有效的设备中 当你想将你的应用数据和其他应用共享时, 内容提供器就可以发挥作用了 Service: 服务, 具有一段较长生命周期且没有用户界面的程序 32.View, surfaceview, GLSurfaceView 有什么区别 view 是最基础的, 必须在 UI 主线程内更新画面, 速度较慢 SurfaceView 是 view 的子类, 类似使用双缓机制, 在新的线程中更新画面所以刷新界面速度比 view 快 GLSurfaceView 是 SurfaceView 的子类,opengl 专用的 33.Manifest.xml 文件中主要包括哪些信息? manifest: 根节点, 描述了 package 中所有的内容 uses permission: 请求你的 package 正常运作所需赋予的安全许可 permission: 声明了安全许可来限制哪些程序能你 package 中的组件和功能 instrumentation: 声明了用来测试此 package 或其他 package 指令组件的代码 application: 包含 package 中 application 级别组件声明的根节点 activity:activity 是用来与用户交互的主要工具 receiver:intentreceiver 能使的 application 获得数据的改变或者发生的操作, 即使它当前不在运行 service:service 是能在后台运行任意时间的组件 provider:contentprovider 是用来管理持久化数据并发布给其他应用程序使用的组件 34. 根据自己的理解描述下 Android 数字签名 (1) 所有的应用程序都必须有数字证书,Android 系统不会安装一个没有数字证书的应用程序 (2)Android 程序包使用的数字证书可以是自签名的, 不需要一个权威的数字证书机构签名认证 (3) 如果要正式发布一个 Android, 必须使用一个合适的私钥生成的数字证书来给程序签名, 而不能使用 adt 插件或者 ant 工具生成的调试证书来发布

22 (4) 数字证书都是有有效期的,Android 只是在应用程序安装的时候才会检查证书的有效期 如果程序已经安装在系统中, 即使证书过期也不会影响程序的正常功能 35. AIDL 的全称是什么? 如何工作? 能处理哪些类型的数据? AIDL 全称 Android Interface Definition Language(AndRoid 接口描述语言 ) 是一种借口描述语言 ; 编译器可以通过 aidl 文件生成一段代码, 通过预先定义的接口达到两个进程内部通信进程跨界对象访问的目的.AIDL 的 IPC 的机制和 COM 或 CORBA 类似, 是基于接口的, 但它是轻量级的 它使用代理类在客户端和实现层间传递值. 如果要使用 AIDL, 需要完成 2 件事情 : 1. 引入 AIDL 的相关类.; 2. 调用 aidl 产生的 class. 理论上, 参数可以传递基本数据类型和 String, 还有就是 Bundle 的派生类, 不过在 Eclipse 中, 目前的 ADT 不支持 Bundle 做为参数, 具体实现步骤如下 : 1 创建 AIDL 文件, 在这个文件里面定义接口, 该接口定义了可供客户端访问的方法和属性 2 编译 AIDL 文件, 用 Ant 的话, 可能需要手动, 使用 Eclipse plugin 的话, 可以根据 adil 文件自 动生产 java 文件并编译, 不需要人为介入. 3 在 Java 文件中, 实现 AIDL 中定义的接口. 编译器会根据 AIDL 接口, 产生一个 JAVA 接口 这个接口有一个名为 Stub 的内部抽象类, 它继承扩展了接口并实现了远程调用需要的几个方法 接下来就需要自己去实现自定义的几个接口了. 4 向客户端提供接口 ITaskBinder, 如果写的是 service, 扩展该 Service 并重载 onbind () 方法来返回一个实现上述接口的类的实例 5 在服务器端回调客户端的函数. 前提是当客户端获取的 IBinder 接口的时候, 要去注册回调函数, 只有这样, 服务器端才知道该调用那些函数 AIDL 语法很简单, 可以用来声明一个带一个或多个方法的接口, 也可以传递参数和返回 值 由于远程调用的需要, 这些参数和返回值并不是任何类型. 下面是些 AIDL 支持的数据类 型 : 1. 不需要 import 声明的简单 Java 编程语言类型 (int,boolean 等 ) 2. String, CharSequence 不需要特殊声明 3. List, Map 和 Parcelables 类型, 这些类型内所包含的数据成员也只能是简单数据类型, String 等其他比支持的类型. ( 另外 : 我没尝试 Parcelables, 在 Eclipse+ADT 下编译不过, 或许以后会有所支持 ).

23 实现接口时有几个原则 :. 抛出的异常不要返回给调用者. 跨进程抛异常处理是不可取的..IPC 调用是同步的 如果你知道一个 IPC 服务需要超过几毫秒的时间才能完成地话, 你应该 避免在 Activity 的主线程中调用 也就是 IPC 调用会挂起应用程序导致界面失去响应. 这种情 况应该考虑单起一个线程来处理.. 不能在 AIDL 接口中声明静态属性 IPC 的调用步骤 : 1. 声明一个接口类型的变量, 该接口类型在.aidl 文件中定义 2. 实现 ServiceConnection 3. 调用 ApplicationContext.bindService(), 并在 ServiceConnection 实现中进行传递. 4. 在 ServiceConnection.onServiceConnected() 实现中, 你会接收一个 IBinder 实例 ( 被调用的 Service). 调用 YourInterfaceName.Stub.asInterface((IBinder)service) 将参数转换为 YourInterface 类型 5. 调用接口中定义的方法 你总要检测到 DeadObjectException 异常, 该异常在连接断开时 被抛出 它只会被远程方法抛出 6. 断开连接, 调用接口实例中的 ApplicationContext.unbindService() 参考 : 36.android:gravity 与 android:layout_gravity 的区别 LinearLayout 有两个非常相似的属性 :android:gravity 与 android:layout_gravity 他们的区别 在于 :android:gravity 用于设置 View 组件的对齐方式, 而 android:layout_gravity 用于设置 Container 组件的对齐方式 举个例子, 我们可以通过设置 android:gravity="center" 来让 EditText 中的文字在 EditText 组件 中居中显示 ; 同时我们设置 EditText 的 android:layout_gravity="right" 来让 EditText 组件在 LinearLayout 中居中显示 来实践以下 :

24 正如我们所看到的, 在 EditText 中, 其中的文字已经居中显示了, 而 EditText 组件自己也对 齐到了 LinearLayout 的右侧 [html] view plaincopyprint? 1. <LinearLayout 2. xmlns:android=" 3. android:orientation="vertical" 4. android:layout_width="fill_parent" 5. android:layout_height="fill_parent"> 6. <EditText 7. android:layout_width="wrap_content" 8. android:gravity="center" 9. android:layout_height="wrap_content" 10. android:text="one" 11. android:layout_gravity="right"/> 12. </LinearLayout> 这两个属性也可以用于 Framlayout Textview 等等, 表示的意思大同小异 37.padding 与 margin 的区别 padding 填充的意思, 指的是 view 中的 content 与 view 边缘的距离, 类似文本中的 indent 而 margin 表示的是 view 的左边缘与 parent view 的左边缘的距离 margin 一般用来描述控件间位置关系, 而 padding 一般描述控件内容和控件的位置关系 简单,padding 是站在父 view 的角度描述问题, 它规定它里面的内容必须与这个父 view 边界的距离 margin 则是站在自己的角度描述问题, 规定自己和其他 ( 上下左右 ) 的 view 之间的距离, 如果同一级只有一个 view, 那么它的效果基本上就和 padding 一样了 例如我的 XML layout 代码如下 : view plaincopy to clipboardprint? [html] view plaincopyprint? 1. <?xml version="1.0" encoding="utf 8"?> 2. <LinearLayout xmlns:android=" 3. android:orientation="vertical" 4. android:layout_width="fill_parent" 5. android:layout_height="fill_parent"

25 6. android:paddingleft="10dip" 7. android:paddingright="10dip" 8. android:paddingtop="10dip" 9. android:paddingbottom="10dip" 10. > 11. <TextView 12. android:layout_width="wrap_content" 13. android:layout_height="wrap_content" 14. android:background="#ff0000" android:paddingleft="50dip" 17. android:paddingright="50dip" 18. android:paddingtop="50dip" 19. android:paddingbottom="50dip" 20. android:layout_marginbottom="10dip" 21. /> 22. <TextView 23. android:layout_width="wrap_content" 24. android:layout_height="wrap_content" 25. android:background="#ff0000" android:paddingleft="50dip" 28. android:paddingright="50dip" 29. android:paddingtop="50dip" 30. android:paddingbottom="50dip" 31. android:layout_marginbottom="10dip" 32. /> 33. <TextView 34. android:layout_width="wrap_content" 35. android:layout_height="wrap_content" 36. android:background="#ff0000" android:paddingleft="50dip" 39. android:paddingright="50dip" 40. android:paddingtop="50dip" 41. android:paddingbottom="50dip" 42. android:layout_marginbottom="10dip" 43. /> 44. <TextView 45. android:layout_width="wrap_content" 46. android:layout_height="wrap_content" 47. android:background="#ff0000" android:paddingleft="50dip"

26 50. android:paddingright="50dip" 51. android:paddingtop="50dip" 52. android:paddingbottom="50dip" 53. android:layout_marginbottom="10dip" 54. /> 55. </LinearLayout> 那么我会得到如下的效果, 图上已经很明确的标出来区别咯 38. 注册广播接收者两种方式的区别 现在我们就来实现一个简单的广播程序 Android 提供了两种注册广播接受者的形式, 分别是在程序中动态注册和在 xml 中指定 他们之间的区别就是作用的范围不同, 程序动态注册的接收者只在程序运行过程中有效, 而在 xml 注册的接收者不管你的程序有没有启动有会起作用 39.Dalvik 基于 JVM 的改进 1. 几个 class 变为一个 dex,constant pool, 省内存 2.Zygote,copy on write shared, 省内存, 省 cpu, 省电 3. 基于寄存器的 bytecode, 省指令, 省 cpu, 省电 4.Trace based JIT, 省 cpu, 省电, 省内存 40.android 中有哪几种解析 xml 的类, 官方推荐哪种? 以及它们的原理 和区别. Ø DOM 解析 优点 : 1.XML 树在内存中完整存储, 因此可以直接修改其数据和结构.

27 2. 可以通过该解析器随时访问 XML 树中的任何一个节点. 3.DOM 解析器的 API 在使用上也相对比较简单. 缺点 : 如果 XML 文档体积比较大时, 将文档读入内存是非常消耗系统资源的. 使用场景 :DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准.DOM 是以层次结构组织的节点的集合. 这个层次结构允许开发人员在树中寻找特定信息. 分析该结构通常需要加载整个文档和构造层次结构, 然后才能进行任何工作.DOM 是基于对象层次结构的. Ø SAX 解析 优点 : SAX 对内存的要求比较低, 因为它让开发人员自己来决定所要处理的标签. 特别是当开发人 员只需要处理文档中所包含的部分数据时,SAX 这种扩展能力得到了更好的体现. 缺点 : 用 SAX 方式进行 XML 解析时, 需要顺序执行, 所以很难访问到同一文档中的不同数据. 此外, 在基于该方式的解析编码过程也相对复杂. 使用场景 : 对于含有数据量十分巨大, 而又不用对文档的所有数据进行遍历或者分析的时候, 使用该方 法十分有效. 该方法不用将整个文档读入内存, 而只需读取到程序所需的文档标签处即可. Ø Xmlpull 解析 android SDK 提供了 xmlpull api,xmlpull 和 sax 类似, 是基于流 (stream) 操作文件, 然后根据节点事件回调开发者编写的处理程序. 因为是基于流的处理, 因此 xmlpull 和 sax 都比较节约内存资源, 不会象 dom 那样要把所有节点以对橡树的形式展现在内存中.xmlpull 比 sax 更简明, 而且不需要扫描完整个流. 41.Android 系统中 GC 什么情况下会出现内存泄露呢? 出现情况 : 1. 数据库的 cursor 没有关闭

28 2. 构造 adapter 时, 没有使用缓存 contentview 衍生 listview 的优化问题 减少创建 view 的对象, 充分使用 contentview, 可以使用一静态类来优化处理 getview 的过程 / 3.Bitmap 对象不使用时采用 recycle() 释放内存 4.activity 中的对象的生命周期大于 activity 调试方法 : DDMS==> HEAPSZIE==>dataobject==>[Total Size] 42. 谈谈对 Android NDK 的理解 NDK 全称 : Native Development Kit 2. 误解误解一 : NDK 发布之前, Android 不支持进行 C 开发在 Google 中搜索 NDK, 很多 Android 终于可以使用 C++ 开发 之类的标题, 这是一种对 Android 平台编程方式的误解. 其实, Android 平台从诞生起, 就已经支持 C. C++ 开发. 众所周知, Android 的 SDK 基于 Java 实现, 这意味着基于 Android SDK 进行开发的第三方应用都必须使用 Java 语言. 但这并不等同于 第三方应用只能使用 Java. 在 Android SDK 首次发布时, Google 就宣称其虚拟机 Dalvik 支持 JNI 编程方式, 也就是第三方应用完全可以通过 JNI 调用自己的 C 动态库, 即在 Android 平台上, Java+C 的编程方式是一直都可以实现的. 当然这种误解的产生是有根源的 : 在 Android SDK 文档里, 找不到任何 JNI 方面的帮助. 即使第三方应用开发者使用 JNI 完成了自己的 C 动态链接库 ( so ) 开发, 但是 so 如何和应用程序一起打包成 apk 并发布? 这里面也存在技术障碍. 我曾经花了不少时间, 安装交叉编译器创建 so, 并通过 asset ( 资源 ) 方式, 实现捆绑 so 发布. 但这种方式只能属于取巧的方式, 并非官方支持. 所以, 在 NDK 出来之前, 我们将 Java+C 的开发模式称之为灰色模式, 即官方既不声明 支持这种方式, 也不声明 不支持这种方式. 误解二 : 有了 NDK, 我们可以使用纯 C 开发 Android 应用 Android SDK 采用 Java 语言发布, 把众多的 C 开发人员排除在第三方应用开发外 ( 注意 : 我们所有讨论都是基于 第三方应用开发, Android 系统基于 Linux, 系统级别的开发肯定是支持 C 语言的. ).NDK 的发布, 许多人会误以为, 类似于 Symbian. WM, 在 Android 平台上终于可以使用纯 C. C++ 开发第三方应用了! 其实不然, NDK 文档明确说明 : it is not a good way. 因为 NDK 并没有提供各种系统事件处理支持, 也没有提供应用程序生命周期维护. 此外, 在本次发布的 NDK 中, 应用程序 UI 方面的 API 也没有提供. 至少目前

29 来说, 使用纯 C. C++ 开发一个完整应用的条件还不完备. 1.NDK 是一系列工具的集合. NDK 提供了一系列的工具, 帮助开发者快速开发 C ( 或 C++ ) 的动态库, 并能自动将 so 和 java 应用一起打包成 apk. 这些工具对开发者的帮助是巨大的. NDK 集成了交叉编译器, 并提供了相应的 mk 文件隔离 CPU. 平台. ABI 等差异, 开发人员只需要简单修改 mk 文件 ( 指出 哪些文件需要编译. 编译特性要求 等 ), 就可以创建出 NDK 可以自动地将 so 和 Java 应用一起打包, 极大地减轻了开发人员的打包工作. 2.NDK 提供了一份稳定. 功能有限的 API 头文件声明. Google 明确声明该 API 是稳定的, 在后续所有版本中都稳定支持当前发布的 API. 从该版本 的 NDK 中看出, 这些 API 支持的功能非常有限, 包含有 : C 标准库 ( libc ). 标准数学库 ( libm ). 压缩库 ( libz ). Log 库 ( liblog ). 3.NDK 带来什么 1.NDK 的发布, 使 Java+C 的开发方式终于转正, 成为官方支持的开发方式. 使用 NDK, 我们可以将要求高性能的应用逻辑使用 C 开发, 从而提高应用程序的执行效率. 使用 NDK, 我们可以将需要保密的应用逻辑使用 C 开发. 毕竟, Java 包都是可以反编译的. NDK 促使专业 so 组件商的出现.( 乐观猜想, 要视乎 Android 用户的数量 ) 2.NDK 将是 Android 平台支持 C 开发的开端. NDK 提供了的开发工具集合, 使开发人员可以便捷地开发. 发布 C 组件. 同时, Google 承诺在 NDK 后续版本中提高 可调式 能力, 即提供远程的 gdb 工具, 使我们可以便捷地调试 C 源码. 在支持 Android 平台 C 开发, 我们能感觉到 Google 花费了很大精力, 我们有理由憧憬 C 组件支持 只是 Google Android 平台上 C 开发的开端. 毕竟, C 程序员仍然是码农阵营中的绝对主力, 将这部分人排除在 Android 应用开发之外, 显然是不利于 Android 平台繁荣昌盛的.

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

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

Lecture01_Android介绍

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

More information

1. 请描述下Activity的生命周期。

1.    请描述下Activity的生命周期。 1. 请描述下 Activity 的生命周期 必调用的三个方法 :oncreate() --> onstart() --> onresume(), 用 AAA 表示 (1) 父 Activity 启动子 Activity, 子 Actvity 退出, 父 Activity 调用顺序如下 AAA --> onfreeze() --> onpause() --> onstop() --> onrestart()

More information

01_Service

01_Service 移动平台应用软件开发 Service 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一七年 什么是 Service 与 Activity 一样, 同属 Android 基本组件 后台运行, 不与用户交互, 没有可视化界面 最常见的 Service 如 : 在后台播放歌曲 后台执行文件的下载 同样需在 AndroidManifest.xml

More information

Lecture01_Android介绍

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

More information

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21 Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21 Outlines for Today Future Planning Review System Architecture Dev. Tools & Making the First App Project Structure & File Details Application

More information

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new ListView 自訂排版 主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new int[]{r.drawable.dog1, R.drawable.dog2,

More information

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63>

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63> 基 于 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

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

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

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

More information

Android Service

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

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

Android线程和进程

Android线程和进程 Android 进程和线程 版权声明 华清远见教育集团版权所有 ; 未经华清远见明确许可, 不得为任何目的以任何形式复制或传播此文档的任何部分 ; 本文档包含的信息如有更改, 恕不另行通知 ; 华清远见教育集团保留所有权利 Android 进程和线程 在安装 Android 应用程序的时候,Android 会为每个程序分配一个 Linux 用户 ID, 并设置相应的权限, 这样其它应用程序就不能访问此应用程序所拥有的数据和资源了

More information

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

手说TTS开发指南

手说TTS开发指南 手说 TTS 开发指南 v1.3 2011 年 6 月 版权所有 : 手说工作室 shoushuo.com 版本时间作者说明 1.0 2010-11-15 张波 1.1 2010-12-27 在 ondestroy 方法 unbindservice 1.2 2010-12-30 1.3 2011-6-12 去掉 TTS 初始化 ; ttsservice.initialize() 方法调用添加接口方法

More information

Microsoft Word zw

Microsoft Word zw 第 1 章 Android 概述 学习目标 : Android Android Android Studio Android Android APK 1.1 1. 智能手机的定义 Smartphone 2. 智能手机的发展 1973 4 3 PC IBM 1994 IBM Simon PDA PDA Zaurus OS 1996 Nokia 9000 Communicator Nokia 9000

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

F515_CS_Book.book

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

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

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

Android Fragment

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

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) 在 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

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

上海市教育委员会文件

上海市教育委员会文件 上 海 高 校 市 级 精 品 课 程 申 报 表 ( 2016 年 度 ) 学 校 名 称 上 海 师 范 大 学 课 程 名 称 Android 应 用 程 序 设 计 课 程 类 型 理 论 课 ( 不 含 实 践 ) 理 论 课 ( 含 实 践 ) 实 验 ( 践 ) 课 所 属 院 系 教 研 室 信 息 与 机 电 学 院 计 算 机 科 学 与 技 术 系 课 程 负 责 人 李 鲁

More information

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc 本章学习目标 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 配置视图解析器 @RequestMapping 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc 和 Struts2 都属于表现层的框架, 它是 Spring 框架的一部分, 我们可 以从 Spring 的整体结构中看得出来 :

More information

1. 2. Flex Adobe 3.

1. 2. Flex Adobe 3. 1. 2. Flex Adobe 3. Flex Adobe Flex Flex Web Flex Flex Flex Adobe Flash Player 9 /rich Internet applications/ria Flex 1. 2. 3. 4. 5. 6. SWF Flash Player Flex 1. Flex framework Adobe Flex 2 framework RIA

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复 获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复 获取将导致上次获取的 access_token 失效 接入方可以使用 AppID 和 AppSecret

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

2 第 章 绪 论 Internet 2.0 使 得 消 费 型 电 子 产 品 用 户 可 以 通 过 多 种 不 同 的 数 据 网 络 访 问 互 联 网 内 容 用 户 可 以 使 用 便 携 式 消 费 型 电 子 设 备, 如 智 能 手 机 触 屏 平 板 电 脑 电 子 书, 甚 至

2 第 章 绪 论 Internet 2.0 使 得 消 费 型 电 子 产 品 用 户 可 以 通 过 多 种 不 同 的 数 据 网 络 访 问 互 联 网 内 容 用 户 可 以 使 用 便 携 式 消 费 型 电 子 设 备, 如 智 能 手 机 触 屏 平 板 电 脑 电 子 书, 甚 至 . Android 是 什 么 第 章 绪 论 2 3 本 章 将 主 要 介 绍 Android 操 作 系 统, 这 些 背 景 知 识 可 以 帮 你 更 好 地 理 解 本 书 的 内 容 你 将 了 解 到, 这 一 平 台 在 如 今 以 便 携 式 消 费 型 电 子 设 备 为 基 础 的 Internet 2.0 环 境 下 是 如 何 大 显 身 手 的 这 里 所 说 的 Internet

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

* 4 6 R P r p . 1 2 3 4 7 89bk 6 5 1 2 3 4 5 6 7 8 9 0 bk r bl bm bn^ bo bl br bq bpbo bn bm [ ] [ ] [ ] bp 8 2 4 6 bq p [ ] [SET] br clckbt bs bs bt ck cl. 1 2 1 2+- 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

ltu

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

More information

第一章 Android 简介与开发环境搭建

第一章 Android 简介与开发环境搭建 安卓开发环境与常用布局 第一章 Android 简介与开发环境搭建 本章目标 3G 的概念 Android 的改变 Android 开发环境的搭建编写第一个 Android 程序 Android 程序的目录结构 手机发展史 1. 3G 的概念 3G 全称为 :3rd Generation, 中文含义即为第三代数字通信, 是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统 2. 符合 3G

More information

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 ( 申 报 稿 ) 主 办 券 商 二 〇 一 五 年 十 月 声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 作 的 负 责 人 会 计 机 构

More information

建模与图形思考

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

More information

建模与图形思考

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

More information

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

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

* r p . 4 6 12 3 5 7 8 9bk bm btbsbrbqbp bo bn bl [ ] [ ] [ ] [ ] [SET] 1 2 3 4 5 6 7. cmcl ck 8 9 0 bk bl bm bn bo 1 2 1 2+ - bp bq 8 2 4 6 br r bs p bt ck cl cm 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

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

WebEx 一键集成 1 文档目的 Web 集成 URL API 语法 启会 加会 调用 移动集成 wbx schema 调用 取得 sessionticket...4

WebEx 一键集成 1 文档目的 Web 集成 URL API 语法 启会 加会 调用 移动集成 wbx schema 调用 取得 sessionticket...4 WebEx 一键集成 1 文档目的...1 2 Web 集成...1 2.1 URL API 语法...1 2.2 启会...2 2.3 加会...3 2.4 调用...3 3 移动集成...3 3.1 wbx schema...3 3.2 调用...4 4 取得 sessionticket...4 1 文档目的 本文档目的是, 让用户了解如何在 Web 端和移动端, 一键调用 WebEx app,

More information

智能移动平台应用开发3 Android系统框架

智能移动平台应用开发3 Android系统框架 第 3 章 Adroid 系统框架 杨刚 中国人民大学 本章学习目标 : 了解 Adroid 的软件系统框架了解 Adroid 应用程序架构认识软件架构的思想延伸软件设计的层次模块设计 对比主流 机 OS 的架构 Wi Phoe 框架 对比主流 机 OS 的架构 Mac OS X 框架 一 Google Adroid 软件架构 Adroid 系统基础架构 Adroid 系统架构和其操作系统一样, 采用了分层的架构

More information

Android 编程基础 Android 开发教程 & 笔记 1

Android 编程基础 Android 开发教程 & 笔记 1 Android 开发教程 & 笔记 1 多式样 ProgressBar 撰写 : 地狱怒兽 联系 :zyf19870302@126.com 普通圆形 ProgressBar 该类型进度条也就是一个表示运转的过程, 例如发送短信, 连接网络等等, 表示一个过程正 在执行中 一般只要在 XML 布局中定义就可以了

More information

ii Vue Bootstrap 4 ES 6 Vue Vue Bootstrap 4 ES 6 Vue 2 vue html vue html vue Vue HTML 5 CSS ES 6 HTML 5 CSS Visual Studio Code h

ii Vue Bootstrap 4 ES 6 Vue Vue Bootstrap 4 ES 6 Vue 2 vue html vue html vue Vue HTML 5 CSS ES 6 HTML 5 CSS Visual Studio Code h ii Vue Bootstrap 4 ES 6 Vue Vue Bootstrap 4 ES 6 Vue 2 vue010101.html vue010104.html vue0101 01 04 Vue HTML 5 CSS ES 6 HTML 5 CSS Visual Studio Code https://code.visualstudio.com/ Chrome XAMP Visual Studio

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

國家圖書館典藏電子全文

國家圖書館典藏電子全文 EAI EAI Middleware EAI 3.1 EAI EAI Client/Server Internet,www,Jav a 3.1 EAI Message Brokers -Data Transformation Business Rule XML XML 37 3.1 XML XML XML EAI XML 1. XML XML Java Script VB Script Active

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

移动终端开发与应用

移动终端开发与应用 移动终端开发与应用 课程目标 LayoutInflater 原理分析 Fragment 简要 创建 Fragment FragmentManager 和 FragmentTransaction 类 Fragment 的生命周期 Activity 与 Fragment 之间的交互 Fragment 的状态的持久化 Fragment 与回退栈 Fragment 扩展 2 第一节 LayoutInflater

More information

使用MapReduce读取XML文件

使用MapReduce读取XML文件 使用 MapReduce 读取 XML 文件 XML( 可扩展标记语言, 英语 :extensible Markup Language, 简称 : XML) 是一种标记语言, 也是行业标准数据交换交换格式, 它很适合在系统之间进行数据存储和交换 ( 话说 Hadoop H ive 等的配置文件就是 XML 格式的 ) 本文将介绍如何使用 MapReduce 来读取 XML 文件 但是 Had oop

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

// 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

工程项目进度管理 西北工业大学管理学院 黄柯鑫博士 甘特图 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

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

單步除錯 (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

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464> 第 1 章 进入 Photoshop 的全新世界 本章导读 Photoshop 1 1.1 Photoshop CS6 Photoshop Photoshop 1.1.1 Photoshop POP 1-1 图 1-1 平面广告效果 1.1.2 Photoshop 1-2 Photoshop CS6 Photoshop CS6 Photoshop CS6 Extended 3D 3 Photoshop

More information

DU Ad Platform_SDK 安卓接入指南 DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0 百度在线网络技术 ( 北京 ) 有限公司 百度在线网络技术 ( 北京 ) 有限公司 - 1 -

DU Ad Platform_SDK 安卓接入指南 DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0 百度在线网络技术 ( 北京 ) 有限公司 百度在线网络技术 ( 北京 ) 有限公司 - 1 - DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0-1 - 目录 1. 获取身份... 1 2. 加载与配置... 2 2.1 加载 SDK 文件... 2 2.2 配置 AndroidManifest.xml... 2 2.3 混淆代码... 3 3. 初始化... 4 4. 功能使用... 4 第 1 页共 1

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

提纲 1 2 OS Examples for 3

提纲 1 2 OS Examples for 3 第 4 章 Threads2( 线程 2) 中国科学技术大学计算机学院 October 28, 2009 提纲 1 2 OS Examples for 3 Outline 1 2 OS Examples for 3 Windows XP Threads I An Windows XP application runs as a seperate process, and each process may

More information

1

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

More information

大漠 伪前端, 就职于淘宝

大漠 伪前端, 就职于淘宝 CSS Grid Layout 2016-12-17 @ 大漠. #CSSConf https://www.flickr.com/photos/19139526@n00/8331063530/ 大漠 伪前端, 就职于淘宝 古老的 table 布局 现代 Web 布局 Float inline-block display: table position (absolute 或 relative)

More information

111

111 修 平 科 技 大 學 資 訊 網 路 技 術 系 貪 食 蛇 組 長 :BN99017 賴 冠 諻 組 員 :BN99001 楊 欣 樺 BN99008 楊 典 瑾 BN99041 陳 宥 瑞 BN99043 張 州 凱 指 導 老 師 : 口 試 老 師 : 口 試 老 師 : 口 試 老 師 : 中 華 民 國 1 0 3 年 6 月 目 錄 目 錄 1 摘 要 3 第 一 章 緒 論 4 (

More information

试题

试题 一 选择题 1 android 虚拟设备的缩写是 (AVD) 2 Android SDK 目前支持的操作系统 (DOS) 3 Android 开发工具插件 (ADT) 没有提供的开发功能 ( 自动更新 ) 4 Android SDK 提供一些开发工具可以把应用软件打包成 Android 格式文件 (APK) 5 Android 当中基本的所有的 UI 都是由 (view) 或者其子类实现的 6 以下不是

More information

中国软件2013校园招聘通知

中国软件2013校园招聘通知 中 国 软 件 2014 校 园 招 聘 通 知 公 司 介 绍 中 国 软 件 与 技 术 服 务 股 份 有 限 公 司 成 立 于 1980 年 ( 公 司 简 称 : 中 软 股 票 简 称 : 中 国 软 件 股 票 代 码 :600536), 是 中 央 管 理 的 国 有 重 要 骨 干 企 业 中 国 电 子 信 息 产 业 集 团 有 限 公 司 (CEC) 控 股 的 大 型 高

More information

ChinaBI企业会员服务- BI企业

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

More information

Learning Java

Learning Java Java Introduction to Java Programming (Third Edition) Prentice-Hall,Inc. Y.Daniel Liang 2001 Java 2002.2 Java2 2001.10 Java2 Philip Heller & Simon Roberts 1999.4 Java2 2001.3 Java2 21 2002.4 Java UML 2002.10

More information

腾讯社交广告转化追踪 Android SDK 接入说明文档 V1.2

腾讯社交广告转化追踪 Android SDK 接入说明文档 V1.2 腾讯社交广告转化追踪 Android SDK 接入说明文档 V1.2 文档 腾讯社交广告转化追踪 Android SDK 接入说明文档 V1.2 必读 1. SDK 嵌入 1.1 步骤 1: 添加 SDK 到工程中 1.2 步骤 2: 修改 AndroidManifest.xml 文件 2. 接入代码 2.1 激活事件统计接口 2.1.1 接入代码示例 2.1.2 激活事件主要 API 2.2 更多转化类型统计接口

More information

序号:001

序号:001 第 一 组 选 题 简 介 序 号 :001 题 目 : 基 于 BPEL 的 网 上 订 餐 系 统 的 设 计 与 实 现 网 上 订 餐 系 统 是 在 互 联 网 上 进 行 菜 单 信 息 发 布 网 上 订 餐 以 及 维 护 客 户 关 系 的 电 子 商 务 系 统, 餐 饮 企 业 可 以 通 过 这 个 电 子 商 务 系 统 发 布 自 己 的 菜 单 信 息 以 供 客 户

More information

优迈科技教学大纲2009版本

优迈科技教学大纲2009版本 java 软 件 工 程 师 培 训 教 学 大 纲 1 JAVA 软 件 工 程 师 培 训 教 学 大 纲 深 圳 软 件 园 人 才 实 训 基 地 2009 年 3 月 目 录 java 软 件 工 程 师 培 训 教 学 大 纲 2 教 学 阶 段...3 第 一 章 JAVA 起 步...3 第 二 章 面 向 对 象 的 编 程...4 第 三 章 数 据 结 构 IO 线 程 网 络...5

More information

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

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

More information

Android 开发教程

Android 开发教程 封面 1 文件存取编程基础 文件 文件可以用来存储比使用引用更大数量的数据 Android 提供方法来读 写文件 只有本地文件可以被访问 优点 : 可以存储大容量的数据 缺点 : 文件更新或是格式改变可能会导致巨大的编程工作 文件操作 读文件 Context.openFileInput(String name) 打开一个与应用程序联系的私有文件输入流 当文件不存在时抛出 FileNotFoundException

More information

面试题目及其答案

面试题目及其答案 Android 练习题及答案 一 选择题 1. 下列哪些语句关于内存回收的说明是正确的?( ) A 程序员必须创建一个线程来释放内存 B 内存回收程序负责释放无用内存 C 内存回收程序允许程序员直接释放内存 D 内存回收程序可以在指定的时间释放内存对象 2. Android 中下列属于 Intent 的作用的是 ( ) A 实现应用程序间的数据共享 B 是一段长的生命周期, 没有用户界面的程序, 可以保持应用在后台运行,

More information

Android 框架虚拟化实战 董福源 360 手机卫士 2017.thegiac.com

Android 框架虚拟化实战 董福源 360 手机卫士 2017.thegiac.com Android 框架虚拟化实战 董福源 360 手机卫士 什么是虚拟化 原生 apk 在封闭系统内 免安装运行 Android 系统的一种沙箱技术 技术架构 Sandbox apps Android OS 目录 Sandbox apps Android OS Activity 插件化 只能启动 Manifest 中声明的 activity 占坑方案 欺骗 AMS Activity 启动过程 ContentImpl

More information

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

More information

目 录 目 录... 2 1 平 台 概 述... 3 2 技 术 架 构... 4 3 技 术 特 点... 7 3.1 基 于 统 一 平 台 的 多 产 品 线 支 撑... 7 3.2 先 进 性... 7 3.3 安 全 性... 7 3.4 开 放 性... 8 3.5 高 性 能 和

目 录 目 录... 2 1 平 台 概 述... 3 2 技 术 架 构... 4 3 技 术 特 点... 7 3.1 基 于 统 一 平 台 的 多 产 品 线 支 撑... 7 3.2 先 进 性... 7 3.3 安 全 性... 7 3.4 开 放 性... 8 3.5 高 性 能 和 致 远 协 同 管 理 软 件 V5 平 台 白 皮 书 北 京 致 远 协 创 软 件 有 限 公 司 2014 年 6 月 1 / 20 目 录 目 录... 2 1 平 台 概 述... 3 2 技 术 架 构... 4 3 技 术 特 点... 7 3.1 基 于 统 一 平 台 的 多 产 品 线 支 撑... 7 3.2 先 进 性... 7 3.3 安 全 性... 7 3.4 开 放

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

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操 计 算 机 基 础 部 程 序 设 计 类 课 程 介 绍 1. Java 语 言 程 序 设 计 Java 简 介 Java 是 一 种 开 放 的 可 以 撰 写 跨 平 台 应 用 程 序 的 面 向 对 象 的 程 序 设 计 语 言 Java 技 术 具 有 卓 越 的 通 用 性 高 效 性 平 台 移 植 性 和 安 全 性, 广 泛 应 用 于 PC 数 据 中 心 科 学 超 级

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

第6讲

第6讲 移 动 终 端 开 发 平 台 介 绍 (Android) 哈 尔 滨 工 业 大 学 软 件 学 院 唐 好 选 Email:tanghx@hit.edu.cn 主 要 内 容 Android 的 技 术 架 构 Android 开 发 环 境 的 建 立 Android 的 基 本 组 件 Android 程 序 的 基 本 结 构 什 么 是 Android Android 本 义 指 机 器

More information

untitled

untitled . Version 1.0 2015 7 1. IT 1.. IBM IBM IBM WBI IBM WBI Jasdaq 3G 9 Java Hitachi Suntory Panansonic 2. IT . 10 Java Software AG (Dachieve) (Angel Engineers Inc.) 360,, Software AG XML,.,,,,.. CRM TOLO 3G

More information

软件工程文档编制

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

More information

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20% 38 11 2013 11 GeomaticsandInformationScienceofWuhanUniversity Vol.38No.11 Nov.2013 :1671-8860(2013)11-1339-05 :A GIS Key-value 1 1 1 1 (1 129 430079) : 设计了一种基于 Key-value 结构的缓存 KV-cache 旨在简化数据结构 高效管理缓存数据

More information

untitled

untitled How to using M-Power Report API M-Power Report API 力 了 M-Power Report -- Java (Library) M-Power Report API 行 Java M-Power Report M-Power Report API ( 30 ) PDF/HTML/CSV/XLS JPEG/PNG/SVG 料 料 OutputStream

More information

RecyclerView and CardVew

RecyclerView and CardVew RecyclerView and CardView 建國科技大學資管系饒瑞佶 2017/10 V1 CardView CardView A CardView is a ViewGroup. Like any other ViewGroup, it can be added to youractivity or Fragment using a layout XML file. To create an

More information

Microsoft Word - json入门.doc

Microsoft Word - json入门.doc Json 入门 送给亲爱的女朋友, 祝她天天快乐 作者 :hlz QQ:81452743 MSN/Email:hulizhong2008@163.com json 入门 (1) json 是 JavaScript Object Notation 的简称 ; 在 web 系统开发中与 AJAX 相结合用的比较多 在 ajax 中数据传输有 2 中方式 : 文本类型, 常用 responsetext 属性类获取

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

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

PowerPoint Presentation

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

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

题目

题目 开发 Android 应用 目的 : 帮助大家了解 Android 平台开发 作者 : 王威威 技术爱好 : linux,qt, 嵌入式开发 MSN : wangweiweicdma@hotmail.com Email : wang.weiwei1@ztenc.com.cn wangjiecdma@126.com 下载开发资源 1 下载最新的 Android SDK http://code.google.com/android/download.html

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

静态分析 投放文件 行为分析 互斥量 (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

<4D6963726F736F667420576F7264202D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9CFBBE1B8E5A3A92E646F63>

<4D6963726F736F667420576F7264202D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9CFBBE1B8E5A3A92E646F63> 创 业 板 投 资 风 险 本 次 股 票 发 行 后 拟 在 创 业 板 市 场 上 市, 该 市 场 具 有 较 高 的 投 资 风 险 创 业 板 公 司 具 有 业 绩 不 稳 定 经 营 风 险 高 退 市 风 险 大 等 特 点, 投 资 者 面 临 较 大 的 市 场 风 险 投 资 者 应 充 分 了 解 创 业 板 市 场 的 投 资 风 险 及 本 公 司 所 披 露 的 风 险

More information

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6 www.brainysoft.net 1.JasperReport ireport...4 1.1 JasperReport...4 1.2 ireport...4 2....4 2.1 JDK...4 2.1.1 JDK...4 2.1.2 JDK...5 2.1.3 JDK...5 2.2 ant...6 2.2.1 ant...6 2.2.2 ant...6 2.3 JasperReport...7

More information

ebook215-5

ebook215-5 5 X M L X M L Document Object Model D O M 5.1 We b We b We b W 3 C W3C DOM W3C DOM D O D O M D O M D O D O M H T M L X M L 5.1.1 XML X M L X M L 5-1 X M L 112 XML 5-2 P R O D U C T P l u t o n i u m L

More information