网站颜色:

官方正版 Android 6 应用开发案例精解(第三版)android6.0编程教程书籍 安卓移动开发 安卓应用程序开发设计从入门到精通 畅销书.

  • 无参数

 

Android 6 应用开发案例精解(第三版)  


著    者:(美)Paul Deitel(保罗. 戴特尔), Harvey Deitel(哈维. 戴特尔), Alexander Wald(亚历山大. 沃尔德)
作 译 者:张君施等
出版时间:(咨询特价) 千 字 数:595
版    次:(咨询特价) 页    数:372
开    本:16开
装    帧:
I S B N (咨询特价)
换    版:
所属分类:科技 >> 计算机 >> 编程语言
纸质书定价:(咨询特价).0 
本书是美国知名编程教材的作者针对Android系统下进行应用开发而编写的一本入门级教程,全书以"应用驱动的方法”为基础,详细讲解了17个完整的Android应用的开发过程,并提供了8个APP应用的完整的源代码。这些应用经过精心挑选,从不同侧面展现了Android系统各个功能模块的编程方法。这些功能包括音频、视频、动画、、蓝牙、语音识别、加速度计、GPS、指北针、应用窗件、3D图形等, 它们都是从事Android应用开发所必须熟知的基本技术。

本书是美国知名编程教材的作者针对Android系统下进行应用开发而编写的一本入门级教程,全书以"应用驱动的方法”为基础,详细讲解了17个完整的Android应用的开发过程,并提供了8个APP应用的完整的源代码。这些应用经过精心挑选,从不同侧面展现了Android系统各个功能模块的编程方法。这些功能包括音频、视频、动画、、蓝牙、语音识别、加速度计、GPS、指北针、应用窗件、3D图形等, 它们都是从事Android应用开发所必须熟知的基本技术。

第1章  Android简介    1

1.1  简介    2

1.2  Android——世界领先的移动操作系统    2

1.3  Android的特点    3

1.4  Android操作系统    5

1.4.1  Android 2.2 (Froyo)    5

1.4.2  Android 2.3 (Gingerbread)    6

1.4.3  Android 3.0~3.2 (Honeycomb)    6

1.4.4  Android 4.0~4.0.4 (Ice Cream Sandwich)    6

1.4.5  Android 4.1~4.3 (Jelly Bean)    7

1.4.6  Android 4.4 (KitKat)    8

1.4.7  Android 5.0和5.1 (Lollipop)    8

1.4.8  Android 6 (Marshmallow)    9

1.5  从Google Play下载应用    9

1.6  包    10

1.7  Android软件开发工具集(SDK)    11

1.8  面向对象编程:简短回顾    13

1.8.1  汽车作为对象    13

1.8.2  方法与类    13

1.8.3  实例化    14

1.8.4  复用    14

1.8.5  消息与方法调用    14

1.8.6  属性与实例变量    14

1.8.7  封装    14

1.8.8  继承    14

1.8.9  面向对象的分析与设计(OOAD)    14

1.9  在AVD中测试Tip Calculator应用    15

1.9.1  在Android Studio中打开Tip Calculator应用的工程    15

1.9.2  创建Android虚拟设备(AVD)    16

1.9.3  在Nexus 6 AVD中运行Tip Calculator应用    18

1.9.4  在Android设备上运行Tip Calculator应用    20

(咨询特价) 创建好的Android应用    21

(咨询特价)  Android开发资源    22

(咨询特价) 小结    23

第2章  Welcome应用    24

2.1  简介    25

2.2  技术概览    26

2.2.1  Android Studio    26

2.2.2  LinearLayout,TextView和ImageView    26

2.2.3  可扩展标记语言(XML)    26

2.2.4  应用的资源    26

2.2.5  辅助性    26

2.2.6  国际化    27

2.3  创建应用    27

2.3.1  启动Android Studio    27

2.3.2  创建新工程    27

2.3.3  Create New Project对话框    28

2.3.4  Target Android Devices步骤    28

2.3.5  Add an Activity to Mobile步骤    29

2.3.6  Customize the Activity步骤    30

2.4  Android Studio窗口    31

2.4.1  Project窗口    31

2.4.2  编辑器窗口    32

2.4.3  Component Tree窗口    33

2.4.4  应用的资源文件    33

2.4.5  布局编辑器    33

2.4.6  默认GUI    33

2.4.7  默认GUI的XML    34

2.5  用布局编辑器构建应用的GUI    35

2.5.1  向工程添加图像    35

2.5.2  添加应用图标    36

2.5.3  将RelativeLayout 改成LinearLayout    37

2.5.4  改变LinearLayout的id和orientation属性    38

2.5.5  配置TextView的id和text属性    39

2.5.6  配置TextView的textSize属性    40

2.5.7  设置TextView的textColor属性    41

2.5.8  设置TextView的gravity属性    41

2.5.9  设置TextView的layout:gravity属性    41

2.5.10 设置TextView的layout:weight属性    43

2.5.11 添加ImageView,显示图像    43

2.5.12 预览设计的效果    46

2.6  运行Welcome应用    46

2.7  为应用增加辅助功能    48

2.8  使应用国际化    49

2.8.1  本地化    49

2.8.2  为本地化资源命名文件夹    49

2.8.3  将字符串译文添加到工程中    49

2.8.4  本地化字符串    50

2.8.5  在AVD中测试西班牙语的应用    50

2.8.6  在设备中测试西班牙语的应用    51

2.8.7  TalkBack与本地化    51

2.8.8  本地化清单    52

2.8.9  专业翻译    52

2.9  小结    52

第3章  Tip Calculator应用    53

3.1  简介    54

3.2  测试驱动的Tip Calculator应用    55

3.3  技术概览    56

3.3.1  Activity类    56

3.3.2  Activity类的周期方法    56

3.3.3  AppCompat库与AppCompatActivity类    57

3.3.4  安排GridLayout中的视图    57

3.3.5  利用布局编辑器、Component Tree和Properties窗口创建并定制GUI    58

3.3.6  格式化数字,表示本地货币和百分比字符串    58

3.3.7  实现TextWatcher接口,处理EditText中的文本变化    58

3.3.8  实现OnSeekBarChangeListener接口,处理SeekBar中的滑块位置变化    58

3.3.9  材料主题    58

3.3.10 材料设计:高度和阴影    59

3.3.11 材料设计:颜色    59

3.3.12  AndroidManifest.xml    60

3.3.13 在Properties窗口中搜索    60

3.4  构建GUI    60

3.4.1  GridLayout简介    60

3.4.2  创建TipCalculator工程    61

3.4.3  改成GridLayout布局    61

3.4.4  添加TextView,EditText和SeekBar    62

3.4.5  定制视图    64

3.5  默认主题及定制主题颜色    66

3.5.1  parent主题    66

3.5.2  定制主题颜色    67

3.5.3  样式的常用View属性值    70

3.6  添加应用的逻辑功能    70

3.6.1  package声明和import声明    70

3.6.2  AppCompatActivity的MainActivity子类    71

3.6.3  类变量与实例变量    71

3.6.4  重写Activity方法onCreate    72

3.6.5  MainActivity方法calculate    74

3.6.6  实现OnSeekBarChangeListener接口的匿名内部类    74

3.6.7  实现TextWatcher接口的匿名内部类    75

3.7  AndroidManifest.xml    76

3.7.1  manifest素    77

3.7.2  application素    77

3.7.3  activity素    77

3.7.4  intent-filter素    78

3.8  小结    79

第4章  Flag Quiz应用    80

4.1  简介    81

4.2  测试驱动的Flag Quiz应用    83

4.2.1  配置应用的设置    83

4.2.2  运行应用    84

4.3  技术概览    86

4.3.1  菜单    86

4.3.2  Fragment    86

4.3.3  Fragment周期方法    87

4.3.4  管理Fragment    88

4.3.5  首选项    88

4.3.6  assets文件夹    88

4.3.7  资源文件夹    89

4.3.8  支持不同屏幕尺寸和分辨率    89

4.3.9  确定设备方向    90

4.3.10 用于显示消息的Toast    90

4.3.11 使用Handler在未来执行一个Runnable对象    90

4.3.12 将动画用于View    90

4.3.13 使用ViewAnimationUtils创建环形缩放动画    90

4.3.14 通过颜色状态表根据视图状态确定颜色    90

4.3.15  AlertDialog    91

4.3.16 为异常消息做日志    91

4.3.17 通过显示Intent启动另一个活动    91

4.3.18  Java数据结构    92

4.3.19  Java SE 7特性    92

4.3.20  AndroidManifest.xml    93

4.4  创建工程、资源文件和另外的类    93

4.4.1  创建工程    93

4.4.2  Blank Activity模板布局    94

4.4.3  配置对Java SE 7的支持    94

4.4.4  向工程添加国旗图像    95

4.4.5  strings.xml与格式化字符串资源    95

4.4.6  arrays.xml    96

4.4.7  colors.xml    97

4.4.8  button_text_color.xml    98

4.4.9  编辑menu_main.xml    98

4.4.10 创建国旗飘扬动画    99

4.4.11 指定应用设置的preferences.xml    100

4.4.12 添加SettingsActivity类和SettingsActivityFragment类    101

4.5  构建应用的GUI    102

4.5.1  用于纵向模式设备的activity_main.xml布局    102

4.5.2  设计fragment_main.xml布局    102

4.5.3  Graphical Layout编辑器工具栏    106

4.5.4  用于横向设备的content_main.xml布局    107

4.6  MainActivity类    108

4.6.1  package声明和import声明    109

4.6.2  字段    109

4.6.3  重写的Activity方法onCreate    109

4.6.4  重写的Activity方法onStart    111

4.6.5  重写的Activity方法onCreateOptionsMenu    112

4.6.6  重写的Activity方法onOptionsItemSelected    112

4.6.7  实现OnSharedPreferenceChangeListener的匿名内部类    113

4.7  MainActivityFragment类    114

4.7.1  package声明和import声明    114

4.7.2  字段    114

4.7.3  重写的Fragment方法onCreateView    116

4.7.4  updateGuessRows方法    118

4.7.5  updateRegions方法    118

4.7.6  resetQuiz方法    119

4.7.7  loadNextFlag方法    120

4.7.8  getCountryName方法    122

4.7.9  animate方法    122

4.7.10 实现OnClickListener的匿名内部类    123

4.7.11  disableButtons方法    126

4.8  SettingsActivity类    126

4.9  SettingsActivityFragment类    127

(咨询特价)  AndroidManifest.xml    127

(咨询特价) 小结    129

第5章  Doodlz应用    130

5.1  简介    131

5.2  在AVD中测试Doodlz应用    132

5.3  技术概览    135

5.3.1  Activity和Fragment的周期方法    135

5.3.2  定制视图    136

5.3.3  使用SensorManager监听加速计事件    136

5.3.4  定制的DialogFragment    136

5.3.5  使用Canvas,Paint和Bitmap画图    137

5.3.6  处理多点触事件并在Path中保存线信息    137

5.3.7  保存图形    138

5.3.8  打印功能及Android支持库的PrintHelper类    138

5.3.9  Android 6.0的新许可模型    138

5.3.10 利用Gradle构建系统添加依赖性    138

5.4  创建工程和资源    138

5.4.1  创建工程    139

5.4.2  Gradle:向工程添加支持库    139

5.4.3  strings.xml    139

5.4.4  为菜单项导入材料设计图标    140

5.4.5  MainActivityFragment菜单    140

5.4.6  在AndroidManifest.xml中添加许可    142

5.5  构建应用的GUI    142

5.5.1  MainActivity的content_main.xml布局    142

5.5.2  MainActivityFragment的fragment_main.xml布局    143

5.5.3  ColorDialogFragment的fragment_color.xml布局    143

5.5.4  LineWidthDialogFragment的fragment_line_width.xml布局    145

5.5.5  添加EraseImageDialogFragment类    146

5.6  MainActivity类    146

5.7  MainActivityFragment类    147

5.7.1  package声明、import声明与字段    147

5.7.2  重写的Fragment方法onCreateView    148

5.7.3  onResume方法和enableAccelerometerListening方法    149

5.7.4  onPause方法和disableAccelerometerListening方法    150

5.7.5  用于处理加速计事件的匿名内部类    150

5.7.6  confirmErase方法    151

5.7.7  重写的Fragment方法onCreateOptionsMenu和onOptionsItemSelected    152

5.7.8  saveImage方法    153

5.7.9  重写的onRequestPermissionsResult方法    154

5.7.10  getDoodleView方法和setDialogOnScreen方法    155

5.8  DoodleView类    155

5.8.1  package声明和import声明    155

5.8.2  静态变量和实例变量    156

5.8.3  构造方法    156

5.8.4  重写的View方法onSizeChanged    156

5.8.5  clear, setDrawingColor,getDrawingColor,setLineWidth和getLineWidth方法    157

5.8.6  重写的View方法onDraw    158

5.8.7  重写的View方法onTouchEvent    158

5.8.8  touchStarted方法    159

5.8.9  touchMoved方法    160

5.8.10  touchEnded方法    161

5.8.11  saveImage方法    161

5.8.12  printImage方法    162

5.9  ColorDialogFragment类    163

5.9.1  重写的DialogFragment方法onCreateDialog    163

5.9.2  getDoodleFragment方法    165

5.9.3  重写的Fragment周期方法onAttach和onDetach    165

5.9.4  响应alpha, red, green和blue SeekBar事件的匿名内部类    165

(咨询特价)  LineWidthDialogFragment类    166

(咨询特价).1  onCreateDialog方法    168

(咨询特价).2  响应widthSeekBar事件的匿名内部类    168

(咨询特价)  EraseImageDialogFragment类    169

(咨询特价) 小结    170

第6章  Cannon Game应用    171

6.1  简介    172

6.2  测试驱动的Cannon Game应用    173

6.3  技术概览    173

6.3.1  使用res/raw资源文件夹    173

6.3.2  Activity和Fragment的周期方法    173

6.3.3  重写View方法onTouchEvent    174

6.3.4  用SoundPool和AudioManager添加声音    174

6.3.5  用Thread,SurfaceView和SurfaceHolder实现逐帧动画    174

6.3.6  简单的冲突检测    175

6.3.7  沉浸模式    175

6.4  构建应用的GUI和资源文件    175

6.4.1  创建工程    175

6.4.2  调整主题,删除应用标题和应用栏    175

6.4.3  strings.xml    176

6.4.4  颜色    176

6.4.5  为应用添加声音    176

6.4.6  添加MainActivityFragment类    176

6.4.7  编辑activity_main.xml    177

6.4.8  将CannonView添加到fragment_main.xml    177

6.5  应用中各个类的概述    178

6.6  Activity的MainActivity子类    178

6.7  Fragment的MainActivityFragment子类    179

6.8  GameElement类    180

6.8.1  实例变量与构造方法    181

6.8.2  update, draw和playSound方法    181

6.9  GameElement的Blocker子类    181

(咨询特价)  GameElement的Target子类    182

(咨询特价)  Cannon类    183

(咨询特价).1  实例变量与构造方法    183

(咨询特价).2  align方法    183

(咨询特价).3  fireCannonball方法    184

(咨询特价).4  draw方法    184

(咨询特价).5  getCannonball和removeCannonball方法    185

(咨询特价)  GameElement的Cannonball子类    185

(咨询特价).1  实例变量与构造方法    185

(咨询特价).2  getRadius,collidesWith,isOnScreen和reverseVelocityX方法    186

(咨询特价).3  update方法    187

(咨询特价).4  draw方法    187

(咨询特价)  SurfaceView的CannonView子类    187

(咨询特价).1  package声明和import声明    187

(咨询特价).2  常量与实例变量    188

(咨询特价).3  构造方法    189

(咨询特价).4  重写View方法onSizeChanged    191

(咨询特价).5  getScreenWidth,getScreenHeight和playSound方法    191

(咨询特价).6  newGame方法    192

(咨询特价).7  updatePositions方法    194

(咨询特价).8  alignAndFireCannonball方法    195

(咨询特价).9  showGameOverDialog方法    195

(咨询特价).10  drawGameElements方法    196

(咨询特价).11  testForCollisions方法    197

(咨询特价).12  stopGame和releaseResources方法    197

(咨询特价).13 实现SurfaceHolder.Callback方法    199

(咨询特价).14 重写View方法onTouchEvent    199

(咨询特价).15  CannonThread:使用Thread实现游戏的循环    200

(咨询特价).16  hideSystemBars和showSystemBars方法    201

(咨询特价) 小结    202

第7章  WeatherViewer应用    203

7.1  简介    204

7.2  测试驱动的WeatherViewer应用    204

7.3  技术概览    205

7.3.1  Web服务    205

7.3.2  JSON与org.json包    206

7.3.3  调用REST Web服务的HttpUrlConnection    208

7.3.4  使用AsyncTask执行GUI线程以外的网络请求    208

7.3.5  ListView,ArrayAdapter与View-Holder模式    209

7.3.6  FloatingActionButton    210

7.3.7  TextInputLayout    210

7.3.8  Snackbar    210

7.4  构建应用的GUI和资源文件    210

7.4.1  创建工程    210

7.4.2  AndroidManifest.xml    211

7.4.3  strings.xml    211

7.4.4  colors.xml    211

7.4.5  activity_main.xml    212

7.4.6  content_main.xml    212

7.4.7  list_item.xml    213

7.5  Weather类    214

7.5.1  package声明、import声明与实例变量    214

7.5.2  构造方法    215

7.5.3  convertTimeStampToDay方法    216

7.6  WeatherArrayAdapter类    216

7.6.1  package声明和import声明    216

7.6.2  嵌套类ViewHolder    217

7.6.3  实例变量与构造方法    217

7.6.4  重写的ArrayAdapter方法getView    218

7.6.5  用于在独立线程中下载图像的AsyncTask子类    219

7.7  MainActivity类    221

7.7.1  package声明和import声明    221

7.7.2  实例变量    222

7.7.3  重写的Activity方法onCreate    222

7.7.4  dismissKeyboard方法和createURL方法    223

7.7.5  调用Web服务的AsyncTask子类    224

7.7.6  convertJSONtoArrayList方法    226

7.8  小结    227

第8章  Twitter Searches应用    228

8.1  简介    229

8.2  测试驱动的应用    230

8.2.1  添加一个搜索    230

8.2.2  查看搜索Twitter的结果    231

8.2.3  编辑搜索    232

8.2.4  共享搜索    233

8.2.5  删除搜索    234

8.2.6  滚动浏览保存的搜索    234

8.3  技术概览    234

8.3.1  将键/值对数据保存到SharedPreferences文件    234

8.3.2  隐式Intent和意图选择器    235

8.3.3  RecyclerView    235

8.3.4  RecyclerView.Adapter和RecyclerView.ViewHolder    236

8.3.5  RecyclerView.ItemDecoration    236

8.3.6  在AlertDialog中显示选项清单    236

8.4  构建应用的GUI和资源文件    236

8.4.1  创建工程    236

8.4.2  AndroidManifest.xml    237

8.4.3  添加RecyclerView库    237

8.4.4  colors.xml    237

8.4.5  strings.xml    237

8.4.6  arrays.xml    237

8.4.7  dimens.xml    238

8.4.8  添加Save按钮图标    238

8.4.9  activity_main.xml    238

8.4.10  content_main.xml    239

8.4.11  RecyclerView项的布局:list_item.xml    241

8.5  MainActivity类    242

8.5.1  package声明和import声明    242

8.5.2  MainActivity类    242

8.5.3  重写的Activity方法onCreate    243

8.5.4  TextWatcher事件处理器和updateSaveFAB方法    245

8.5.5  saveButton的OnClickListener接口    246

8.5.6  addTaggedSearch方法    247

8.5.7  实现View.OnClickListener,显示搜索结果的匿名内部类    247

8.5.8  实现View.OnLongClickListener的匿名内部类    248

8.5.9  shareSearch方法    250

8.5.10  deleteSearch方法    251

8.6  RecyclerView.Adapter的SearchesAdapter子类    252

8.6.1  package声明、import声明、实例变量和构造方法    252

8.6.2  RecyclerView.ViewHolder的嵌套ViewHolder子类    252

8.6.3  重写RecyclerView.Adapter方法    253

8.7  RecyclerView.ItemDecoration的ItemDivider 子类    254

8.8  Fabric:Twitter的新移动开发平台    255

8.9  小结    256

第9章  Address Book应用    257

9.1  简介    258

9.2  测试驱动的Address Book应用    260

9.2.1  添加信息    260

9.2.2  查看信息    260

9.2.3  编辑信息    260

9.2.4  删除信息    262

9.3  技术概览    262

9.3.1  用FragmentTransaction显示Fragment    262

9.3.2  在Fragment与宿主Activity之间交换数据    263

9.3.3  操作SQLite数据库    263

9.3.4  ContentProvider和ContentResolver    263

9.3.5  Loader和LoaderManager——异步数据库访问    264

9.3.6  定义样式并应用于GUI组件    264

9.3.7  指定TextView背景    265

9.4  构建应用的GUI和资源文件    265

9.4.1  创建工程    265

9.4.2  创建应用的类    265

9.4.3  添加应用图标    266

9.4.4  strings.xml    266

9.4.5  styles.xml    266

9.4.6  textview_border.xml    267

9.4.7  MainActivity的布局    268

9.4.8  ContactsFragment的布局    270

9.4.9  DetailFragment的布局    270

9.4.10  AddEditFragment的布局    271

9.4.11  DetailFragment的菜单    273

9.5  应用中各个类的概述    273

9.6  DatabaseDescription类    274

9.6.1  静态字段    274

9.6.2  嵌套Contact类    275

9.7  AddressBookDatabaseHelper类    275

9.8  AddressBookContentProvider类    277

9.8.1  AddressBookContentProvider字段    277

9.8.2  重写的onCreate和getType方法    278

9.8.3  重写的query方法    279

9.8.4  重写的insert方法    281

9.8.5  重写的update方法    282

9.8.6  重写的delete方法    283

9.9  MainActivity类    284

9.9.1  超类及实现的接口和字段    284

9.9.2  重写的onCreate方法    285

9.9.3  ContactsFragment.ContactsFragmentListener方法    285

9.9.4  displayContact方法    286

9.9.5  displayAddEditFragment方法    287

9.9.6  DetailFragment.DetailFragmentListener方法    288

9.9.7  AddEditFragment.AddEditFragmentListener方法    288

(咨询特价)  ContactsFragment类    289

(咨询特价).1  超类及实现的接口    289

(咨询特价).2  ContactsFragmentListener    289

(咨询特价).3  字段    290

(咨询特价).4  重写的Fragment方法onCreateView    290

(咨询特价).5  重写的Fragment方法onAttach和onDetach    291

(咨询特价).6  重写的Fragment方法onActivityCreated    291

(咨询特价).7  updateContactList方法    292

(咨询特价).8  LoaderManager.LoaderCallbacks<Cursor>方法    292

(咨询特价)  ContactsAdapter类    293

(咨询特价)  AddEditFragment类    296

(咨询特价).1  超类及实现的接口    296

(咨询特价).2  AddEditFragmentListener    297

(咨询特价).3  字段    297

(咨询特价).4  重写的Fragment方法onAttach,onDetach和onCreateView    298

(咨询特价).5  TextWatcher nameChangedListener和updateSaveButtonFAB方法    299

(咨询特价).6  View.OnClickListener saveContactButtonClicked和saveContact方法    300

(咨询特价).7  LoaderManager.LoaderCallbacks<Cursor>方法    301

(咨询特价)  DetailFragment类    302

(咨询特价).1  超类及实现的接口    303

(咨询特价).2  DetailFragmentListener    303

(咨询特价).3  字段    303

(咨询特价).4  重写的onAttach,onDetach和onCreateView方法    304

(咨询特价).5  重写的onCreateOptionsMenu和onOptionsItemSelected方法    305

(咨询特价).6  deleteContact方法和DialogFragment confirmDelete    306

(咨询特价).7  LoaderManager.LoaderCallback<Cursor>方法    306

(咨询特价)  小结    308

第10章  Google Play及应用的商业问题    309

10.1  简介    309

10.2  为发布应用做准备    310

10.2.1  测试应用    310

10.2.2  最终用户协议    311

10.2.3  图标与卷标    311

10.2.4  为应用定义版本    311

10.2.5  为已付费应用提供访问控制授权    312

10.2.6  弄乱源代码    312

10.2.7  获取密钥,对应用进行数字签名    312

10.2.8  有特色的图像和屏幕截图    312

10.2.9  用于推广应用的视频    313

10.3  为应用定价:免费或收费    314

10.3.1  付费应用    314

10.3.2  免费应用    314

10.4  利用In-App Advertising货币化应用    315

10.5  货币化应用:通过应用内计费功能销售虚拟商品    315

10.6  注册Google Play    316

10.7  设置Google Payments商家账号    317

10.8  将应用上载到Google Play    317

10.9  在应用里启动Play Store    319

(咨询特价) 管理Google Play中的应用    319

(咨询特价) 其他的Android应用市场    319

(咨询特价) 其他移动应用平台及应用移植    320

(咨询特价) 应用的市场推广    320

(咨询特价) 小结    323

索引    324

 

热门设计服务