易语言入门到精通易语言入门到精通全套教程全套教程易语言入门到精通全套教程易语言入门到精通全套教程易语言入门到精通易语言入门到精通全套教程全套教程易语言入门到精通全套教程易语言入门到精通全套教程
2022-08-30 13:08:21 7.64MB 易语言入门到精通全套教程5.0
1
此书是windows api 基础教程,可以深入学习windows下的编程,了解windows的运行过程。
2022-08-29 23:58:25 46.27MB windows api
1
Jetpack Compose 入门到精通.PDF
2022-08-29 18:22:12 11.87MB Compose
1
全书内容包括准备开发环境、TCP/IP基本介绍、Windows套接字基础、协议特征、基本TCP套接字编程、基本UDP套接字编程、套接字选项、套接字阻塞模式开发、套接字非阻塞模式开发、Select模型开发、WSAAsyncSelect模型开发、WSAEventSelect模型开发、重叠I/O模型开发和完成端口模型开发。为使读者深入理解套接字的理论知识,增加实践项目经验,本书最后7章,每章讲解一个具有实践意义的网络应用程序。在这些实例中包含许多软件开发技术知识,如STL、ADO、多线程、MFC、软件设计模式等。
2022-08-29 13:42:19 49.2MB Windows Sockets 网络开发
1
ngnix开发从入门到精通的网页,讲得比较全面
2022-08-28 19:44:44 1.14MB nginx
1
首先介绍Ubuntu Linux系统的硬盘安装过程与GNOME桌面环境,然后从最基本的命令行与文件系统基础知识及操作人手,由浅人深,逐步阐述Linux系统的基本概念与原理。在此基础上,对Linux系统的Shell编程、用户管理、进程管理、磁盘空间管理、软件管理、文件系统管理、系统启动过程、作业调度与系统日志,以及TCP/IP网络管理与应用等内容进行深入的讨论
2022-08-28 19:24:57 3.45MB Ubuntu
1
目录 6 第1章 Windows应用程序开发入门 16 1.1 第一个实例程序 16 1.1.1 sta rt.exe 16 1.1.2 Windows API 17 1.1.3 程序入口函数 17 1.1.4 start.c代码分析 17 1.2 编译代码 18 1.2.1 安装Visual Studio 18 1.2.2 安装Microsoft Platform SDK 19 1.2.3 集成Microsoft Platform SDK与Visual C++速成版 20 1.2.4 Vista SDK与Visual Studi0 2008 21 1.2.5 Visual Studio专业版或团队系统版 22 1.2.6 使用图形化IDE建立工程、进行编译 22 1.2.7 “解决方案”与“工程” 23 1.2.8 使用命令行工具编译 23 第2章 Windows API概要 24 2.1 Windows数据类型 24 2.1.1 Windows数据类型示例 25 2.1.2 Windows数据类型与标准C数据类型的关系 28 2.1.3 Windows数据类型与Windows API 28 2.1.4 Windows中的数据结构 29 2.2 Windows API的功能分类 29 2.2.1 系统基本服务 29 2.2.2 系统管理 31 2.2.3 用户界面 31 2.2.4 图像和多媒体 34 2.2.5 网络 34 2.2.6 系统安全 34 2.2.7 其他功能 35 2.3 Windows API核心DLL 35 2.3.1 Kerne132.dll 35 2.3.2 User32.dll 36 2.3.3 Gdi32.dll 36 2.3.4 标准C函数 36 2.3.5 其他Dll 36 2.4 Unicode和多字节 36 2.4.1 W版本和A版本的API 38 2.4.2 Unicode与ASGII的转换 39 2.5 对Windows程序设计规范的建议 39 第3章 开发工具配置与使用 41 3.1 使用Visual C/C++编译链接工具 41 3.1.1 编译器cl.exe 41 3.1.2 资源编译器rc.exe 46 3.1.3 链接器link.exe 47 3.1.4 其他工具 53 3.1.5 编译链接工具依赖的环境变量 54 3.1.6 示例:使用/D选项进行条件编译 57 3.2 使用Platform SDK 58 3.2.1 Platform SDK的目录结构与功能 58 3.2.2 为编译链接工具设置环境变量 59 3.2.3 Platform SDK工具集 61 3.2.4 Windows Vista SDK 63 3.3 编写Makefile 63 3.3.1 使用nmake.exe构建工程 63 3.3.2 Makefile实例 65 3.3.3 注释 65 3.3.4 宏 66 3.3.5 描述块:目标、依赖项和命令 68 3.3.6 makefile预处理 69 3.3.7 在Platform SDK的基础上使用nmake 70 3.4 使用WinDbg调试 72 3.4.1 安装WinDbg 72 3.4.2 编译可调试的程序 73 3.4.3 WinDbg命令 74 3.4.4 调试过程演示 74 3.5 集成开发环境Visual Studio 77 3.5.1 工程类型选择与配置 77 3.5.2 Visual Studio快捷方式 79 3.5.3 生成项目 79 3.5.4 调试 79 3.5.5 选项与设置 80 3.6 开发环境配置总结 81 第4章 文件系统 82 4.1 概述 82 4.1.1 文件系统的基本概念 82 4.1.2 文件系统主要API 83 4.2 磁盘和驱动器管理 85 4.2.1 遍历卷并获取属性 85 4.2.2 操作驱动器挂载点 91 4.2.3 判断光驱中是否有光盘 96 4.2.4 获取磁盘分区的总容量、空闲容量、簇、扇区信息 98 4.3 文件和目录管理 101 4.3.1 删除、复制、重命名、移动文件 102 4.3.2 创建、打开、读写文件,获取文件大小 105 4.3.3 创建目录 111 4.3.4 获取程序所在的目录、程序模块路径,获取和设置当前目录 112 4.3.5 查找文件、遍历指定目录下的文件和子目录 115 4.3.6 递归遍历目录树 118 4.3.7 获取、设置文件属性和时间 120 4.4 内存映射文件 125 4.4.1 使用Mapping File提高文件读写的效率 125 4.4.2 通过Mapping File在进程间传递和共享数据 130 4.4.3 通过文件句柄获得文件路径 133 4.5 总结 136 第5章 内存管理 137 5.1 Windows内存管理原理 137 5.1.1 基本概念 137 5.1.2 分页与分段内存管理、内存映射与地址转换 138 5.1.3 进程的内存空间 140 5.1.4 虚拟内存布局、内存的分工、堆与栈 142 5.1.5 内存的保护属性和存取权限 142 5.1.6 本章API列表 142 5.2 堆管理 144 5.2.1 获取堆句柄、分配与再分配堆 144 5.2.2 获取堆中内存块的大小信息 148 5.2.3 释放内存、销毁堆 149 5.3 全局(Global)和局部(Local)内存管理 151 5.3.1 Global函数 151 5.3.2 Local函数 152 5.3.3 使用全局和局部函数分配和释放内存、改变内存块属性 153 5.4 虚拟内存管理 154 5.4.1 虚拟地址空间与内存分页 154 5.4.2 分配和释放可读可写的虚拟内存页面 154 5.4.3 修改内存页面状态和保护属性、将页面锁定在物理内存中 157 5.4.4 管理其他进程的虚拟内存 158 5.5 内存操作与内存信息管理 159 5.5.1 复制充、移动、清零内存块、防止缓冲区溢出 159 5.5.2 获得当前系统内存使用情况 161 5.5.3 判断内存指针的可用性 162 5.6 各种内存分配方式的关系与比较 163 5.6.1 标准C内存管理函数与Windows内存管理API的关系 163 5.6.2 功能性区别 164 5.6.3 效率的区别 164 第6章 进程、线程和模块 165 6.1 基本概念 165 6.1.1 应用程序与进程 165 6.1.2 控制台应用程序与图形用户界面应用程序 166 6.1.3 动态链接库、模块 166 6.1.4 线程、纤程与作业 167 6.1.5 权限与优先级 167 6.2 进程管理 167 6.2.1 创建进程、获取进程相关信息、获取启动参数 168 6.2.2 编写控制台程序和图形用户界面应用程序 173 6.2.3 获取和设置环境变量 173 6.3 线程、纤程 176 6.3.1 创建线程、退出线程、获取线程信息 177 6.3.2 挂起、恢复、切换、终止线程 179 6.3.3 创建远程线程、将代码注入其他进程中执行 182 6.3.4 创建纤程、删除纤程、调度纤程 185 6.3.5 纤程与线程的互相转换 186 6.4 进程状态信息 191 6.4.1 PS API与Tool help API 191 6.4.2 遍历系统中的进程 193 6.4.3 列举进程的模块、线程 197 6.4.4 进程的堆使用、内存占用、虚拟内存大小,页面错误情况 199 6.5 动态链接库 200 6.5.1 加载、释放DLL、通过句柄获取DLL相关信息 201 6.5.2 编写动态链接库、导出函数 201 6.5.3 创建动态链接库工程,配置DLL编译链接选项 203 6.5.4 运行时动态获取DLL导出函数地址并调用 204 6.5.5 声明导出函数、创建lib库,为其他模块提供导入表调用接口 205 6.5.6 通过构建导入表调用DLL导出函数 206 第7章 线程同步 207 7.1 基本原理 207 7.1.1 线程同步的过程 207 7.1.2 同步对象 208 7.1.3 等待函数 208 7.2 同步对象示例 209 7.2.1 使用事件对象(Event) 209 7.2.2 使用互斥对象(Mutex) 214 7.2.3 使用信号量控制访问共享数据的线程数量 217 7.2.4 使用可等待计时器(Timer) 221 7.3 等待进程和线程的执行完成 224 第8章 服务 225 8.1 基本概念 225 8.1.1 服务控制器(SCM) 225 8.1.2 服务程序 226 8.1.3 服务控制管理程序 226 8.1.4 系统服务管理工具 226 8.1.5 服务的属性 226 8.2 编写服务程序 227 8.2.1 入口函数 227 8.2.2 服务主函数 227 8.2.3 控制处理函数 228 8.3 实现对服务的控制和管理 231 8.3.1 创建、删除服务 231 8.3.2 启动、停止服务,向服务发送控制请求 234 8.3.3 管理服务状态、配置服务、服务的依赖关系 237 第9章 图形用户界面 244 9.1 字符界面程序 244 9.1.1 基本概念 244 9.1.2 控制台读写 246 9.1.3 控制台字体、颜色等属性,操作屏幕缓存 249 9.1.4 控制台事件 259 9.2 图形用户界面:基本概念 262 9.2.1 窗口 262 9.2.2 窗口类 263 9.2.3 消息和消息处理函数 263 9.2.4 控件 263 9.2.5 资源 264 9.2.6 对话框 264 9.3 图形用户界面:窗口 264 9.3.1 注册窗口类 266 9.3.2 创建窗口 267 9.3.3 窗口消息处理函数 269 9.3.4 窗口属性、位置和大小 273 9.3.5 窗口显示方式 274 9.3.6.线程消息队列和消息循环 274 9.4 图形用户界面:控件 275 9.4.1 Tree View控件 275 9.4.2 为Tree View控件增加节点 277 9.4.3 Tree View右键菜单 278 9.4.4 List View控件 280 9.4.5 为List View控件增加分栏 282 9.4.6 为List View控件增加项 283 9.4.7 文本框控件 284 9.4.8 为文本框控件设置文字 285 9.5 界面资源 286 9.5.1 资源脚本(.rc) 286 9.5.2 资源ID定义和头文件 289 9.5.3 在程序中使用资源 289 9.6 菜单 290 9.6.1 菜单资源和菜单句柄 290 9.6.2 动态增加、删除、设置菜单及菜单项 291 9.6.3 菜单消息处理 292 9.7 对话框 292 9.7.1 创建对话框 292 9.7.2 对话框消息处理函数 293 第10章 系统信息的管理 295 10.1 Windows系统信息 295 10.1.1 获取系统版本 295 10.1.2 获取计算机硬件信息 297 10.1.3 获取系统目录等信息 299 10.1.4 用户名、计算机名、域名 300 10.1.5 处理系统颜色信息、尺度信息等 302 10.1.6 鼠标、键盘等外设信息 303 10.2 时间信息 304 10.2.1 设置、获取系统时间 304 10.2.2 获取开机至现在持续的时间 305 10.2.3 文件时间与系统时间的转换 305 10.3 注册表 306 10.3.1 注册表的作用及组织形式 306 10.3.2 键、子键、键属性及键值的相关操作 307 10.3.3 列举注册表项及键值 309 10.3.5 设置随程序启动而启动的调试器(任何程序) 312 10.3.6 指定程序崩溃实时调试器 312 第11章 进程间通信 313 11.1 邮槽( MailSlot ) 313 11.1.1 创建邮槽、从邮槽中读取消息 313 11.1.2 通过邮槽发送消息 317 11.2 管道(Pipe) 318 11.2.1 创建命名管道 318 11.2.2 管道监听 320 11.2.3 使用异步I/O进行读写 321 11.2.4 关闭管道实例 325 11.2.5 客户端 325 11.3 剪贴板 328 11.3.1 获取、设置剪贴板数据 328 11.3.2 监视剪贴板 334 11.3.3 剪贴板数据格式 343 11.4 数据复制消息(WM_COPYDATA) 345 11.4.1 数据发送端 345 11.4.2 数据接收端 348 11.5 其他进程间通信方式 350 11.5.1 动态数据交换(DDE)和网络动态数据交换(NDDE) 350 11.5.3 Windows Socket 351 第12章 Windows Shell程序设计 352 12.1 Windows Shell目录管理 352 12.1.1 Shell对目录和文件的管理形式 353 12.1.2 “我的文档”等特殊目录相关操作 353 12.1.3 绑定、遍历、属性获取 354 12.1.4 浏览文件对话框 357 12.2 文件协助(File Associations) 358 12.2.1 文件类型相关注册表键值 359 12.2.2 为文件指定默认打开程序 359 12.2.3 定制文件类型的图标 360 12.3 Shell扩展 361 12.3.1 对象及概念 361 12.3.2 CLSID,处理例程的GUID 362 12.3.3 注册Shell扩展 363 12.3.4 COM程序开发基础 364 12.3.5 编写Handler程序 364 12.3.6 Shell扩展程序的调试 380 12.3.7 总结 381 12.4 任务栏通知区域(Tray)图标 381 12.4.1 创建图标窗口 382 12.4.2 创建图标和图标菜单 386 12.4.4 弹出气泡通知 391 12.4.5 动态图标 393 12.4.6 其他功能 395 第13章 Windows GDI 398 13.1 GDI编程接口概述 398 13.1.1 Windows GDI的功能 398 13.1.2 链接库与头文件 398 13.2 设备上下文(DC)\输出操作与图形对象 398 13.2.1 设备上下文类型与关联设备 399 13.2.2 图形对象的作用及与DC的关系 399 13.2.3 各类图形对象的具体属性与作用 401 13.2.4 绘制、填充、写入等图形输出操作 402 13.2.5 修剪与坐标变换 403 13.2.6 设备上下文的图形模式 403 13.3 一个最简单的GDI程序 404 13.3.1 示例 404 13.3.2 DC的操作 406 13.3.3 颜色的表示 407 13.3.4 图形对象:画刷和画笔 407 13.3.5 输出操作:绘制图形和线条 409 13.4 文字和字体 409 13.4.1 选择、设置字体 412 13.4.2 选择字体图形对象 413 13.4.3 文字的颜色 413 13.4.4 输出文字 413 13.4.5 DC图形模式设置 414 13.4.6 遍历字体 415 13.4.7 为系统安装、删除字体文件 417 13.5 绘制线条 417 13.5.1 选择画笔对象 417 13.5.2 直线 418 13.5.3 绘制任意曲线 418 13.5.4 跟踪鼠标轨迹 418 13.5.5 弧线 424 13.6 绘制图形 424 13.6.1 填充颜色与边缘勾勒 425 13.6.2 绘制矩形、椭圆、圆角矩形 425 13.6.3 椭圆弓形和椭圆扇形 431 13.6.4 多边形 431 13.6.5 REGT结构及对RECT的操作 432 13.7 位图操作 434 13.7.1 截取屏幕、保存位图文件 434 13.7.2 将位图显示在界面上 439 13.8 区域(Regions)、路径(Paths)与修剪(Clip)操作 442 13.8.1 区域的创建及形状、位置等属性 442 13.8.2 区域边沿、区域填充、反转与勾勒操作 443 13.8.3 组合、比较、移动等操作 446 13.8.4 点击测试(Hit Testing) 447 13.8.5 路径的创建与操作 451 13.8.6 路径转换为区域 452 13.8.7 使用区域和路径进行修剪操作,限制输出 452 13.9 坐标变换 458 13.9.1 缩放 459 13.9.2 旋转 460 13.10 调色板 460 第14章 网络通信与配置 463 14.1 Socket通信 463 14.1.1 客户端 464 14.1.2 服务端 469 14.1.3 处理并发的客户端连接 475 14.1.4 网络通信的异步I/O模式 476 14.2 IP Helper 476 第15章 程序安装与设置 483 15.1.1 makecab.exe 483 15.1.2 压缩多个文件 484 15.1.3 Cabinet软件开发工具包(CABSDK) 485 15.2 编写INF文件 486 15.2.1 INF文件格式 486 15.2.2 Install节 488 15.2.3 CopyFiles和AddReg等安装过程 488 15.2.4 源路径和目的路径 489 15.2.5 字符串表 489 15.3 安装程序setup.exe的编号 489 15.4 使用msi文件进行安装 493 15.4.1 Windows Installer Service 493 15.4.2 msi文件的创建与修改工具orca.exe 495 15.4.3 准备工作 496 15.4.4 编辑表组 496 第16章 设备驱动管理与内核通信 497 16.1 设备管理 497 16.1.1 列举设备接口 497 16.1.2 监控设备的加载和卸载 504 16.2 I/o控制、内核通信 509 16.2.1 加载驱动程序 509 16.2.2 控制驱动程序、与驱动程序进行通信 516 16.3 编写设备驱动程序 519 16.3.1 驱动程序开发包:DDK 520 16.4 I/O模式,同步与异步 525 第17章 用户、认证和对象安全 527 17.1 基本概念 527 17.1.1 访问令牌、权限和用户标识 527 17.1.2 进程的系统操作权限 528 17.1.3 安全对象 528 17.1.4 访问控制列表(ACL) 529 17.2 安全机制程序示例 530 17.2.1 列举进程访问令牌内容和权限 530 17.2.2 修改进程的权限 536 17.2.3 列举安全对象的安全描述符 537 17.2.4 修改安全描述符 543 17.3 用户 544 17.3.1 创建用户 544 17.3.2 用户组 545 17.3.3 删除用户 546 17.3.4 列举用户和用户组、获取用户信息 547 第18章 Windows API的内部原理 554 18.1 关于API的补充说明 554 18.1.1 Windows API的版本演进和Vista新增API 554 18.1.2 64位操作系统的接口 555 18.2 Windows系统中的对象封装 555 18.2.1 什么是对象 555 18.2.2 面向对象的思想 555 18.2.3 Windows系统中的对象:内核对象、GDI对象等 556 18.3 WiFidows程序设计参考:文档资源与样例代码 556 18.3.1 SDK文档和MSDN 556 18.3.2 SDK示例代码 556 18.4 x86平台程序函数调用原理 557 18.4.1 函数调用的真实过程 557 18.4.2 函数调用约定 561 18.4.3 为什么通过参数返回数据时只能使用指针 562 18.4.4 缓冲区溢出 562 18.4.5 程序运行错误的调试技巧 562 18.5 可执行程序结构与AIPI函数接口内部机理 563 18.5.1 Windows可执行程序结构 563 18.5.2 导入表、导出表、动态链接 565 18.5.3 NTDLL.DLL、NATIVE API和SSDT 566 18.5.4 API HOOK 568 18.6 发布程序 569 18.6.1 合理选择编译链接选项 569 18.6.2 构建到指定路径 569 18.7 模块化,向Windows APl学习接口定义 569 18.7.1 lib文件 569 18.7.2 头文件 570 18.7.3 为第三方应用软件提供SDK 570
2022-08-26 09:33:47 50.19MB windowsAPI
1
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 Android移动应用开发从入门到精通 基本信息 原书名: Android Wireless Application Development 原出版社: Addison-Wesley Professional 作者: (美)Shane Conder    Lauren Darcey 译者: 张魏 李卉 出版社:人民邮电出版社 ISBN:9787115230195 上架时间:2010-7-8 出版日期:2010 年7月 开本:16开 页码:470 版次:1-1 编辑推荐   本书提供Android开发从入门到进阶的全程指导,囊括详尽的开发实践技术和前瞻的市场应用技巧! 内容简介   本书涵盖了android开发从概念、技术到市场推广应用的全部话题,内容包括:android概览、android应用程序设计精髓、android用户界面设计精髓、常用android api、更多android应用程序设计原则、对外发布你的android应用程序和附录等7个部分。附录还包含了android开发常用工具(如模拟器、ddms、调试桥和sqlite等)的使用指南。   本书不仅适合android应用程序开发人员阅读,还能为qa测试人员提供指导。另外本书还可以帮助项目经理更好地管理项目进程和项目团队,帮助市场推广人员更好地把握市场、创造令人瞩目的销售业绩。 作译者   Shane Conder拥有丰富的开发经验,在过去的10年中,他把主要精力集中在移动和嵌入式开发领域,迄今已设计并开发了基于BREW、J2ME、Windows Mobile和Android的诸多商业软件。Shane撰写了大量关于移动通信行业和评估移动开发平台的文章,这些文章发表在他的个人技术博客上,在领域内受到了广泛的关注。Shane获得了加州大学授予的计算机科学学士学位。   Lauren Darcey是一家专注于移动开发的小软件公司的技术主管。拥有20年专业软件产品研发经验的Lauren,被公认为企业架构和商业级移动应用开发的权威.Lauren获得了加州大学圣克鲁兹分校授予的计算机学士学位. 目录 封面 -20 封底 -19 扉页 -18 版权 -17 内容提要 -16 作者简介 -15 致谢 -15 前言 -14 目录 -10 第一部分 Android概览 1 第1章 Android简介 2 1.1 移动软件开发简史 2 1.1.1 遥想当年 2 1.1.2 “砖头” 3 1.1.3 无线应用协议(WAP) 4 1.1.4 商用移动平台 6 1.2 开放手机联盟(OHA) 8 1.2.1 无线Google 8 1.2.2 开放手机联盟成立 8 1.2.3 制造商:设计Android手机 9 1.2.4 内容提供商:开发Android应用程序 9 1.2.5 移动操作系统:传播Android体验 9 1.2.6 充分发挥Android的优势 10 1.3 Android平台的不同之处 10 1.3.1 Android:下一代平台 10 1.3.2 免费开放源代码 11 1.3.3 熟悉和廉价的开发工具 11 1.3.4 合理的开发人员学习曲线 12 1.3.5 强大的应用程序开发支持 12 1.3.6 丰富、安全的应用集成 12 1.3.7 无障碍发布 13 1.3.8 为应用程序提供的“自由市场” 13 1.3.9 新生并逐渐成长的平台 14 1.4 Android平台 14 1.4.1 Android的基本体系结构 14 1.4.2 安全与许可权限 16 1.4.3 开发Android应用程序 17 小结 18 参考资料和更多信息 19 第2章 你的Android开发环境 20 2.1 配置你的开发环境 20 2.1.1 支持的操作系统 20 2.1.2 安装Java开发包(JDK) 20 2.1.3 安装Eclipse开发环境 21 2.1.4 其他开发环境 22 2.1.5 安装Android软件开发包(SDK) 22 2.1.6 安装与配置Android Eclipse插件(ADT) 23 2.1.7 ADT安装释疑 25 2.1.8 升级Android SDK 25 2.1.9 Android SDK的问题 25 2.1.10 配置Android编译硬件 26 2.1.11 配置操作系统以适应设备编译 26 2.1.12 本书使用的开发环境 27 2.2 探索Android SDK 27 2.2.1 Android SDK许可协议 27 2.2.2 Android SDK文档 28 2.2.3 Android应用程序框架 29 2.2.4 Android工具 30 2.2.5 Android示例应用程序 33 小结 34 参考资料和更多信息 34 第3章 编写第一个Android应用程序 35 3.1 测试你的开发环境 35 3.1.1 在Eclipse工程中导入Snake应用程序 35 3.1.2 为Snake工程创建Android虚拟设备(AVD) 37 3.1.3 为Snake工程创建运行配置参数 37 3.1.4 在Android模拟器中运行Snake应用程序 39 3.2 构建你的第一个Android应用程序 39 3.2.1 创建和配置新的Android工程 40 3.2.2 Android应用程序的核心文件和目录 40 3.2.3 为新工程创建Android虚拟设备 41 3.2.4 为工程配置运行参数 41 3.2.5 在模拟器中运行Android应用程序 42 3.2.6 在模拟器中调试Android应用程序 43 3.2.7 为Android应用程序添加日志记录 45 3.2.8 为应用程序添加媒体支持 46 3.2.9 为应用程序添加基于位置的服务(LBS) 48 3.2.10 在硬件上调试应用程序 50 小结 51 参考资料和更多信息 51 第二部分 Android应用程序设计精髓 53 第4章 剖析Android应用程序 54 4.1 Android应用程序的生存周期 54 4.1.1 使用Activity执行应用程序任务 54 4.1.2 使用Intent在不同Activity之间实现跳转 55 4.1.3 Android Activity的生存周期 58 4.2 使用Android Manifest文件定义应用程序 62 4.2.1 管理你的应用程序身份 65 4.2.2 注册Activity和其他应用程序组件 65 4.2.3 使用许可权限 67 4.2.4 指定应用程序所需输入设备和软件 69 4.2.5 使用库和Android SDK版本 70 4.2.6 在Manifest文件中定义应用程序的其他配置参数 71 小结 71 第5章 管理应用程序资源 72 5.1 什么是资源 72 5.1.1 应用程序资源的存储方式和位置 72 5.1.2 资源目录的层级结构 72 5.1.3 资源的类型 73 5.1.4 存储不同的资源类型 74 5.1.5 使用程序访问资源 75 5.2 实例:使用Eclipse设置简单资源 75 5.3 使用资源 78 5.3.1 使用String(字符串)资源 79 5.3.2 使用格式化的String资源 80 5.3.3 使用String数组 81 5.3.4 使用颜色 82 5.3.5 使用尺寸 82 5.3.6 使用简单Drawable资源 83 5.3.7 使用图像 84 5.3.8 使用动画 88 5.3.9 使用菜单 89 5.3.10 使用XML文件 90 5.3.11 使用原始文件 91 5.3.12 资源引用 92 5.3.13 使用布局(layout) 93 5.3.14 使用样式(style) 97 5.3.15 使用主题(theme) 100 5.4 引用系统资源 100 5.5 管理各种应用程序配置 101 5.5.1 为本地化和设备配置指定资源 102 5.5.2 在程序中使用适当的配置资源 104 5.5.3 高效地组织应用程序资源 106 小结 107 参考资料和更多信息 108 第三部分 Android用户界面设计精髓 109 第6章 探索用户界面屏幕元素 110 6.1 Android视图、Widget和布局简介 110 6.1.1 Android视图简介 110 6.1.2 Android Widget简介 110 6.1.3 Android布局简介 111 6.2 使用TextView显示文本 111 6.2.1 配置布局和尺寸 112 6.2.2 在文本中创建上下文链接 113 6.3 使用EditText和Spinner获取用户文本 114 6.3.1 使用自动补全辅助用户 116 6.3.2 使用输入过滤器约束用户输入 118 6.3.3 使用Spinner Widget的下拉列表约束用户输入 119 6.4 使用按钮、多选框和单选组 121 6.4.1 使用基本按钮 122 6.4.2 使用多选框和Toggle按钮 123 6.4.3 使用RadioGroup和RadioButton 124 6.5 获取用户输入的日期和时间 126 6.6 向用户显示信息 127 6.6.1 使用ProgressBar指示进度 128 6.6.2 使用SeekBar指示和调整进度 130 6.6.3 使用RatingBar指示和调整评分 130 6.6.4 使用Chronometer指示时间推移 131 6.6.5 使用AnalogClock和DigitalClock指示当前时间 133 6.7 为用户提供选项和上下文菜单 133 6.7.1 使用选项菜单 133 6.7.2 使用ContextMenu(上下文菜单) 136 6.8 掌控用户事件 137 6.8.1 监听触摸模式状态改变 138 6.8.2 监听全屏幕上的事件 138 6.8.3 监听长时单击 139 6.8.4 监听手势 140 6.8.5 监听焦点改变 142 6.8.6 监听屏幕旋转 143 6.9 使用样式 143 6.10 使用主题 146 小结 147 第7章 使用布局设计Android用户界面 149 7.1 创建Android用户界面 149 7.1.1 使用XML资源创建布局 149 7.1.2 使用代码创建布局 150 7.2 使用ViewGroup组织用户界面 152 7.3 使用内建的布局类 156 7.3.1 使用AbsoluteLayout 158 7.3.2 使用FrameLayout 159 7.3.3 使用LinearLayout 161 7.3.4 使用RelativeLayout 162 7.3.5 使用TableLayout 165 7.3.6 在屏幕上使用多布局 167 7.4 使用内建的View容器类 167 7.4.1 结合AdapterView使用数据驱动View容器 168 7.4.2 使用TabActivity和TabHost组织视图 171 7.4.3 探索其他视图容器 173 7.5 使用AppWidget显示应用程序视图 175 7.6 成为AppWidget提供者 176 小结 177 第8章 Android绘图与动画 178 8.1 屏幕绘图 178 8.2 使用文字 182 8.2.1 使用默认字体 182 8.2.2 使用自定义字体 183 8.2.3 测量文字所需的屏幕尺寸 184 8.3 使用位图 184 8.3.1 在画布上绘制位图 185 8.3.2 缩放位图 185 8.3.3 使用Matrix变换位图 186 8.4 使用图形 186 8.4.1 用XML资源定义图形 187 8.4.2 使用程序定义图形 187 8.4.3 绘制各种图形 188 8.5 使用动画 193 8.5.1 使用逐帧动画 194 8.5.2 使用补间动画 195 小结 200 第四部分 常用Android API 201 第9章 使用Android数据和存储API 202 9.1 使用应用程序首选项 202 9.1.1 创建私有和共享首选项 203 9.1.2 搜索和读取首选项 203 9.1.3 新增、修改和删除首选项 204 9.1.4 使用Android文件系统查找首选项数据 204 9.2 使用文件和目录 205 9.2.1 探索Android应用程序目录 206 9.2.2 在默认应用程序目录中创建和写入文件 206 9.2.3 在默认应用程序目录中读取文件内容 207 9.2.4 使用Android文件系统操作其他目录和文件 208 9.3 使用SQLite数据库存储结构化数据 209 9.3.1 创建SQLite数据库 210 9.3.2 创建、修改和删除数据库记录 212 9.3.3 在SQLite数据库中执行查询 215 9.3.4 关闭和删除SQLite数据库 220 9.3.5 设计持久数据库 220 9.3.6 向应用程序界面绑定数据 223 9.4 使用Content Provider在应用程序间共享数据 227 9.4.1 为访问图像调整Content Provider 227 9.4.2 探索Android的部分内建Content Provider 232 9.4.3 在Content Provider中修改数据 239 9.5 使用自定义Content Provider扩展你的Android应用程序 241 9.5.1 继承Content Provider 241 9.5.2 定义数据URI 242 9.5.3 定义数据列 242 9.5.4 实现query()、insert()、update()、delete()和getType() 243 9.5.5 更新Manifest文件 248 9.6 使用Live Folder 249 小结 251 参考资料和更多信息 252 第10章 使用Android网络API 253 10.1 访问因特网(HTTP) 253 10.1.1 从Web读取数据 253 10.1.2 使用HttpURLConnection 254 10.1.3 解析从网络获取的XML 255 10.1.4 使用线程访问网络 257 10.1.5 显示从网络资源获取的图像 260 10.1.6 获取Android网络状态 262 10.2 使用WebView浏览Web 263 小结 265 参考资料和更多信息 266 第11章 使用位置服务(LBS)API 267 11.1 使用全球定位服务(GPS) 267 11.1.1 查找你的位置 267 11.1.2 定位你的模拟器 269 11.2 位置地理编码 269 11.3 在地图上标注位置 272 11.3.1 地图标注内容 272 11.3.2 地图标注视图 272 11.3.3 获得调试API Key 274 11.3.4 拖曳地图视图 275 11.3.5 缩放地图视图 276 11.3.6 标记点 277 11.4 位置服务扩展应用 281 小结 282 参考资料和更多信息 282 第12章 使用Android多媒体API 283 12.1 操作静态图像 283 12.1.1 使用摄像头捕捉静态图像 283 12.1.2 分享图像 287 12.1.3 将图像指定为墙纸 288 12.2 使用视频 289 12.2.1 录制视频 289 12.2.2 播放视频 290 12.3 使用音频 291 12.3.1 录制音频 291 12.3.2 播放音频 293 12.3.3 共享音频 294 12.3.4 使用铃音 294 小结 295 第13章 使用Android电话API 296 13.1 使用电话功能包 296 13.1.1 为获取手机状态信息取得许可权限 296 13.1.2 请求获取通话状态 297 13.1.3 请求获取服务信息 299 13.1.4 使用电话号码 299 13.2 使用短消息 300 13.2.1 获得发送和接收短消息的许可权限 301 13.2.2 发送短消息 301 13.2.3 接收短消息 303 13.3 拨打电话 305 小结 307 参考资料和更多信息 307 第14章 通过OpenGL ES使用Android 3D图形 308 14.1 定义OpenGL ES 308 14.2 使用基于OpenGL ES的Android 3D应用程序 309 14.2.1 创建SurfaceView 309 14.2.2 启动OpenGL ES线程 311 14.2.3 初始化EGL 312 14.2.4 初始化GL 314 14.2.5 绘制 315 14.3 绘制3D物体 316 14.3.1 绘制顶点(vertices) 316 14.3.2 为顶点着色 317 14.3.3 绘制更多复杂物体 318 14.3.4 照亮你的场景 320 14.3.5 为对象赋予材质 321 14.4 同Android视图和事件进行交互 323 14.4.1 允许OpenGL线程向应用程序线程发送信息 324 14.4.2 允许应用程序线程向OpenGL线程发送信息 325 14.5 清理OpenGL ES 326 14.6 使用GLSurfaceView类 327 小结 330 参考资料和更多信息 330 第15章 使用Android可选硬件API 331 15.1 使用设备传感器 331 15.2 使用Wi-Fi 334 15.3 监视电池 337 小结 339 第五部分 更多Android应用程序设计原则 341 第16章 使用通知 342 16.1 使用状态栏发布通知 342 16.2 让手机震动 345 16.3 灯光闪烁 346 16.4 发出声响 347 16.5 自定义通知 348 小结 350 第17章 使用服务 351 17.1 创建服务 351 17.2 控制服务 355 17.3 实现远程接口 356 17.4 实现可包装(parcelable)类 358 小结 360 第六部分 对外发布你的Android应用程序 363 第18章 移动软件开发过程 364 18.1 移动开发过程概览 364 18.2 选择一种软件开发方法 364 18.2.1 理解“瀑布模型”的危险 365 18.2.2 认识迭代式开发的价值 365 18.3 整合应用程序需求 366 18.3.1 确定工程需求 366 18.3.2 为移动应用程序开发用例 367 18.3.3 吸纳第三方需求 367 18.3.4 管理手机设备数据库 368 18.4 项目风险评估 370 18.4.1 确定目标手机 370 18.4.2 获取目标手机 371 18.4.3 确定应用程序需求的可行性 372 18.4.4 理解质量保障的风险 372 18.5 编写基本项目文档 373 18.5.1 为质量保障制定测试计划 374 18.5.2 提供第三方所需的文档 374 18.5.3 提供维护和移植所需的文档 374 18.6 实现移动应用程序配置管理系统 374 18.6.1 选择一个源代码控制系统 374 18.6.2 实现一个可用的版本管理系统 375 18.7 设计移动应用程序 375 18.7.1 认识移动设备的局限 375 18.7.2 移动应用程序体系结构探索 376 18.7.3 可扩展和维护设计 376 18.7.4 应用程序交互设计 377 18.8 开发移动应用程序 377 18.9 测试移动应用程序 378 18.10 发布移动应用程序 378 18.10.1 确定目标市场 379 18.10.2 将市场需求引入应用程序需求 379 18.11 支持和维护移动应用程序 379 18.11.1 维护适当的应用程序文档 379 18.11.2 管理服务器的动态更改 379 18.11.3 确定低风险移植机会 380 小结 380 参考资料和更多信息 380 第19章 开发和测试“防弹”Android应用程序 381 19.1 “防弹”移动应用程序设计最佳实践 381 19.1.1 满足移动用户的需求 382 19.1.2 为移动设备设计用户界面 382 19.1.3 设计稳定、灵敏的移动应用程序 384 19.1.4 设计安全的移动应用程序 385 19.1.5 在设计移动应用程序时考虑利益的最大化 385 19.1.6 在Android应用程序设计时使用第三方标准 386 19.1.7 设计便于维护和升级的移动应用程序 386 19.1.8 在应用程序设计中使用Andriod工具 388 19.1.9 避免设计时的愚蠢错误 388 19.2 “防弹”移动应用程序开发最佳实践 388 19.2.1 设计有效的移动开发过程 389 19.2.2 提早和经常地测试应用程序可行性 389 19.2.3 使用代码标准、代码检查和单元测试以提高代码质量 389 19.2.4 处理某单一手机的缺陷 391 19.2.5 在应用程序开发中使用Android工具 392 19.2.6 避免开发时的愚蠢错误 392 19.3 移动应用程序测试最佳实践 392 19.3.1 设计一个应用程序漏洞跟踪系统 392 19.3.2 管理测试环境 393 19.4 确定设备的“洁净”初始状态 394 19.4.1 模仿现实世界的活动 395 19.4.2 尽量全面地进行测试 395 19.4.3 在应用程序测试中使用Android工具 400 19.4.4 避免测试时的愚蠢错误 401 19.4.5 外包测试的责任 401 小结 401 参考资料和更多信息 401 第20章 销售你的Android应用程序 402 20.1 为发布而打包你的应用程序 402 20.1.1 准备封装你的代码 402 20.1.2 准备你的软件包 403 20.1.3 测试软件包的发布版本 406 20.1.4 认证你的Android应用程序 406 20.2 赚钱 406 20.2.1 在Android Market上销售你的应用程序 406 20.2.2 在自己的服务器上销售你的应用程序 411 20.2.3 销售应用程序的其他途径 412 20.2.4 保护你的知识产权 413 20.2.5 让用户付费 413 小结 414 参考资料和更多信息 414 第七部分 附录 415 附录A Android模拟器快速入门 416 A.1 玩转默认模拟器 416 A.2 使用Android虚拟设备管理模拟器配置 418 A.3 列表显示Android目标操作系统 418 A.3.1 创建AVD 419 A.3.2 列表显示所有已知的AVD 424 A.3.3 删除AVD 424 A.3.4 使用其他的AVD命令 425 A.4 使用启动选项控制模拟器行为 425 A.4.1 以命令行的方式配置模拟器启动选项 426 A.4.2 使用Eclipse配置模拟器启动选项 426 A.5 配置模拟器的位置信息 427 A.6 在两个模拟器实例之间拨打电话 427 A.7 在两个模拟器实例之间发送消息 429 A.8 通过控制台与模拟器交互 429 A.8.1 使用控制台模拟来电 429 A.8.2 使用控制台模拟短消息 429 A.8.3 使用控制台发送GPS坐标 430 A.8.4 使用控制台监视网络状态 431 A.8.5 使用控制台操作电源设置 431 A.8.6 使用其他控制台命令 432 A.9 享受模拟器 432 A.10 认识模拟器的局限 433 附录B Android DDMS快速入门 434 B.1 独立或结合Eclipse使用DDMS 434 B.2 熟悉DDMS的关键特性 436 B.3 使用进程 436 B.3.1 向Android应用程序关联调试器 437 B.3.2 监视Android应用程序的线程活动 437 B.3.3 在Android应用程序中触发垃圾回收(GC) 438 B.3.4 监视Android应用程序的堆活动 438 B.3.5 终止Android进程 438 B.4 使用文件浏览器 439 B.4.1 从模拟器或设备上拷贝文件 440 B.4.2 向模拟器或设备拷贝文件 440 B.4.3 删除模拟器或设备上的文件 440 B.5 使用模拟器控制 441 B.5.1 模拟语音来电 441 B.5.2 模拟短消息接收 441 B.5.3 发送位置坐标 442 B.6 使用应用程序日志 442 B.7 在模拟器或目标设备上截屏 443 附录C Android调试桥快速入门 445 C.1 列表显示连接到计算机的设备和模拟器 445 C.2 针对特定设备使用ADB命令 446 C.3 启动和停止ADB服务进程 446 C.3.1 停止ADB服务进程 446 C.3.2 启动和检测ADB服务进程 446 C.4 使用ADB从/向Android应用程序拷贝文件 446 C.4.1 向设备发送文件 447 C.4.2 从设备提取文件 447 C.5 使用ADB安装和卸载Android应用程序 447 C.5.1 使用ADB安装应用程序 447 C.5.2 使用ADB重装应用程序 448 C.5.3 使用ADB卸载应用程序 448 C.6 使用LogCat记录日志 448 C.6.1 显示所有的日志信息 448 C.6.2 更改日志记录模式以包含日期和时间信息 449 C.6.3 过滤日志信息 449 C.6.4 清除日志 450 C.6.5 将日志输出重定向至一个文件 450 C.6.6 访问次级日志 450 C.7 生成Bug报告 451 C.8 发布Shell命令 451 C.8.1 发布单条Shell命令 451 C.8.2 启动和使用一个Shell会话 451 C.8.3 使用ADB Shell启动和终止模拟器 452 C.8.4 使用ADB Shell查看SQLite数据库 452 C.8.5 在ADB Shell中使用Monkey进行应用程序压力测试 452 C.8.6 通过Shell安装和使用自定义二进制文件 455 C.9 其他ADB命令探索 456 附录D SQLite快速入门 457 D.1 探索SQLite的常见任务 457 D.2 使用sqlite3命令行接口 457 D.2.1 启动sqlite3命令行接口并连接数据库 458 D.2.2 探索你的数据库 458 D.2.3 导入和导出数据库 460 D.2.4 在命令行中执行SQL命令 461 D.2.5 窥视SQLite内部 462 D.2.6 使用其他的sqlite3命令 462 D.2.7 认识SQLite的局限 462 D.3 通过实例理解SQLite:学生成绩数据库 463 D.3.1 设计学生成绩数据库的模式 463 D.3.2 结合AUTOINCREMENT创建简单表 464 D.3.3 向表中插入数据 464 D.3.4 使用SELECT查询表数据 465 D.3.5 创建具有外键和复合主键的表 466 D.3.6 修改和更新表数据 467 D.3.7 使用JOIN进行多表查询 467 D.3.8 使用计算列 468 D.3.9 对计算列使用子查询 469 D.3.10 删除表 470 前言   在以开放手机联盟(Open Handset Alliance,OHA)和Google公司为先驱的开拓下,Android作为一个热门、新潮、免费、开源的移动平台在无线通信领域引起了不小的波澜。而你手中的这本书恰恰能够为软件开发团队提供设计、开发、测试、调试和发布Android应用程序的一系列指导。如果你是一位资深的移动开发人员,那么书中一些小提示和小技巧可以帮助你更好地利用Android的某些独特功能,从而更加顺利地完成整个开发过程。相反,如果你刚刚踏入移动开发领域,那么本书将为你提供所有需要掌握的知识和技能,从而帮助你平稳而顺利地从传统软件开发过渡到移动开发——尤其是,过渡到其中最富有前景的新平台:Android。   此书为谁而写   本书涵盖了作者数年来在移动开发领域所积累的经验,以及成功进行移动项目开发所需的全部概念和实用技术,包括移动开发过程与传统软件开发的区别,还包括帮助你节约宝贵时间和规避隐患的技巧。不管你的项目有多大规模,本书都能为你提供帮助。   本书主要针对以下3类人群。   (1)想要学习编写专业Android应用程序的软件开发人员   本书主体部分主要针对有Java程序开发经验而无需具有移动开发经验的程序员。但是,具有丰富移动开发经验的开发人员更能够从本书中学习到如何充分运用和发挥Android的优势,同时了解它与市面上其他移动开发技术的区别。   (2)担负Android程序测试任务的QA人员   无论QA工程师采用的是“黑盒”还是“白盒”的测试方法,这本书对于他们而言都具有非凡的价值。我们花了几章的篇幅来讲解有关QA的问题,例如:制订稳健的测试计划,为应用程序开发漏洞跟踪系统,管理手机设备以及利用Android工具进行完整测试的方法。   (3)筹建和管理Android开发团队的项目经理   本书可以帮助项目经理完成从筹建开发团队、聘用开发人员到执行Android项目的整个过程。我们探讨了有关项目风险管理和顺利进行项目开发的有关话题。   这本书不仅适用于软件开发人员,而且适用于一个正在寻找潜在的垂直市场应用软件(Vertical Market Application)的公司,一个正在构思某个“新奇酷”手机软件的企业家,抑或一个正在探寻新手机乐趣的发烧友。同时,这本书也可以帮助某些正在为某个特定目的(例如可行性分析)而对Android进行评估的企业,或者任何拥有Android手机并且乐于创造新的移动应用软件的人。   书中解答的问题   本书为你解答了以下问题。   ①什么是Android?   ②Android和其他移动技术有什么不同?开发人员如何利用Android的优势?   ③开发人员如何使用针对Java的Eclipse开发环境来开发和调试模拟器和真机上的Android应用程序?   ④Android应用程序是怎样架构起来的?   ⑤如何为移动应用程序——尤其是为Android——设计强大的用户界面?   ⑥Android SDK提供哪些功能?开发人员如何使用它们?   ⑦移动应用开发过程同传统桌面应用程序开发有什么区别? .  ⑧对于Android开发而言,什么样的开发策略是最佳的?   ⑨项目经理、开发人员和测试人员在策划、开发和测试移动应用程序时应该关注什么?   ⑩开发团队如何设计能够供发布使用的“防弹(bulletproof)”的Android应用程序?   11开发团队如何封装Android应用程序以供部署(deployment)?   Q9开发团队如何利用Android应用程序谋求利润?   本书的结构   本书分为7个部分。前5个部分是开发人员感兴趣的主要问题,第6和第7部分则为项目经理、QA人员和开发人员提供了更多有用的信息。   接下来对本书的各个部分作一个简单的介绍。   (1)第1部分:Android概览   第1部分简单介绍了Android,阐释了它和其他移动平台的区别。你将会熟悉Android SDK和相关工具,了解如何搭建开发环境,以及怎样在模拟器及手机上编写和运行第一个Android应用程序。   (2)第2部分:Android应用程序设计精髓   第2部分介绍了设计一个Android应用程序所需要了解的原则。你将学习到如何构建Android应用程序,怎样在你的项目中包含诸如字符串、图形及其他用户界面组件等资源的方法。   (3)第3部分:Android用户界面设计精髓   第3部分对在Android中应该怎样设计用户界面进行了更深入的探讨。你将学习到核心用户界面元素——视图的有关知识,以及Android SDK提供的基本的屏幕绘制和动画功能。   (4)第4部分:常用Android API   第4部分由一系列章节组成,每一章都对Android SDK中最重要的API进行了更深入的讲解,例如数据和存储API(包括文件和数据库使用,以及内容提供者接口)、连网、电话、定位服务(LBS)、多媒体和3D图形API,以及可选硬件API。   (5)第5部分:更多Android应用程序设计原则   第5部分涵盖了更多的Android应用程序设计原则,例如通知和服务。   (6)第6部分:对外发布你的Android应用程序   第6部分涵盖了移动软件开发的全过程,还为项目经理、软件开发人员和QA人员提供了不少小提示和小技巧。   (7)第7部分:附录   第7部分针对Android开发工具提供了几个有用的快速入门引导:模拟器、ADB和DDMS,以及SQLite指南。   本书使用的Android开发环境   本书所有Android应用程序代码均在如下环境中编写:   ·Windows Vista SP1和Mac OS X 10.5.6   ·Eclipse Java IDE Version 3.4(Ganymede)   ·Eclipse JDT插件和Web Tools Platform(WTP)   ·Sun Java SE开发工具包(JDK)6 Update 10   ·Android SDK Version1.1R1和Version1.5 R1   Note   本书大部分示例程序均同时在Fedora 8和Windows XP平台下使用Android SDK测试通过。   可用的补充材料   书中的源代码在随书提供的光盘和原出版社网站(www.informit.com/title/9780321627094)上均可找到。   作者Lauren Darcey和Shane Conder在关于本书的博客(http://androidbook.blogspot.com)中提供了有关Android的最新信息。   获取更多信息   读者在互联网上可以找到一个活跃而有用的Android开发人员社区。另外,下面的一系列网站可供Android开发人员获取更多资源:   ·Android Developer Website——Android SDK和开发人员参考网站:   http://developer.android.com/   ·Open Handset Alliance——供Android制造商、运营商和开发人员:   www.openhandsetalliance.com/   ·Android Market——购买和销售Android应用程序:   www.android.com/market/   ·anddev.org——一个Android开发人员论坛:   www.anddev.org   ·Google Team Android Apps——开源Android应用程序:   http://apps-for-android.googlecode.com/   ·Fierce Developer——为无线开发人员提供技术周刊:   www.fiercedeveloper.com/   ·Fierce Wireless一每日提供无线通信业的相关文章:   www.fiercewireless.com/   ·Fierce Mobile Content——每日提供移动应用内容和市场有关的文章:   www.fiercemobilecontent.com/   ·Wireless Developer Network——提供无线领域的每日新闻:   www.wirelessdevnet.com/   ·Developer.com——面向开发者提供移动技术文章的网站:   www.developer.com/   本书约定   本书遵循如下约定:   ①用于指示代码接续,即该行代码应与上行代码保持在同一行。出现该符号的代码行略去了缩进。   ②代码和程序术语使用等宽(monospace)字体表示。   同时,本书提供如下类型的信息框:   Tip   “Tip”提供同当前内容相关的有用信息和提示。   Note   “Note”为读者补充感兴趣的相关信息。   Caution   “Caution”提供可能遇到的陷阱的有关信息, 以及避免它们的方法。   Android SDK1.5新特性   这一特殊的信息框用于展现Android SDK 1.5有趣的新特性。   联系作者   作者Lauren和Shane欢迎你提出批评意见。如果你对本书的内容存在任何疑问,或有任何反馈信息,请访问本书博客:http://androidbook.blogspot.com或发送电子邮件至:androidwirelessdev@gmail.com。   
2022-08-25 19:12:00 44.78MB Android 移动应用 开发入门 Android精通
1
精通C#数据库开发,本身从程序开发角度深入介绍了C#.net开发数据库应用的知识
2022-08-24 11:42:38 79.84MB C#
1
FreeModbus协议从入门到精通,一站式服务,资源内有FreeModbus的全部学习资料: 1、基于 STM32+FreeRTOS 操作系统,移植好的 FreeModbus 主机、从机协议栈 2、FreeModbus 主机、从机协议分析流程图; 3、FreeModbus 主机使用指南; 4、FreeModbusV1.6源码 5、FreeModbus 主机、从机调试工具 6、笔者整理的 FreeModbus 协议文档 7、笔者搜集的 FreeModbus 协议文档
2022-08-24 11:04:56 39.53MB FreeModbus Master Slave STM32