中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >
深入解析Android虛擬機

包郵 深入解析Android虛擬機

出版社:人民郵電出版社出版時間:2016-09-01
開本: 32開 頁數: 595
中 圖 價:¥57.4(5.8折) 定價  ¥99.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

深入解析Android虛擬機 版權信息

  • ISBN:9787115423535
  • 條形碼:9787115423535 ; 978-7-115-42353-5
  • 裝幀:暫無
  • 冊數:暫無
  • 重量:暫無
  • 所屬分類:>

深入解析Android虛擬機 本書特色

Android系統從誕生到現在的短短幾年時間里,憑借其易用性和開發的簡潔性,贏得了廣大開發者的支持。在整個Android系統中,Dalvik VM一直是貫穿從底層內核到高層應用開發的核心。本書循序漸進地講解了Android虛擬機系統的基本知識,并剖析了其整個內存系統的進程和運作流程,并對虛擬機系統優化和異常處理的知識進行了詳細講解。本書幾乎涵蓋了Dalvik VM系統的所有主要內容,并且講解方法通俗易懂,特別有利于讀者學習并消化。 本書適合Android初學者、Android底層開發人員、源代碼分析人員和虛擬機開發人員學習,也可以作為大專院校相關專業師生的學習用書和培訓學校的教材。

深入解析Android虛擬機 內容簡介

依次講解了Java虛擬機基礎、Android虛擬機基礎 分析JNI、內存系統、Android程序的生命周期管理、IPC進程通信機制、init進程,講解了Dalvik VM的進程系統和運作流程、Dvlik VM內存系統詳解、Dalvik VM垃圾收集機制、Dalvik VM內存優化機制、Dalvik VM的啟動過程、Dalvik VM異常處理, 以及Dalvik VM內存優化和Dalvik VM性能優化等內容。

深入解析Android虛擬機 目錄

目錄

第1章 獲取并編譯Android源碼 1
1.1 獲取Android源碼 1
1.1.1 在Linux系統獲取Android
源碼 1
1.1.2 在Windows平臺獲取Android
源碼 2
1.1.3 Windows獲取Android L源碼 4
1.2 分析Android源碼結構 6
1.3 編譯Android源碼 8
1.3.1 搭建編譯環境 8
1.3.2 開始編譯 9
1.3.3 在模擬器中運行 10目錄

第1章 獲取并編譯Android源碼 1
1.1 獲取Android源碼 1
1.1.1 在Linux系統獲取Android
源碼 1
1.1.2 在Windows平臺獲取Android
源碼 2
1.1.3 Windows獲取Android L源碼 4
1.2 分析Android源碼結構 6
1.3 編譯Android源碼 8
1.3.1 搭建編譯環境 8
1.3.2 開始編譯 9
1.3.3 在模擬器中運行 10
1.3.4 常見的錯誤分析 10
1.3.5 實踐演練—演示兩種編譯Android程序的方法 11
1.4 編譯Android Kernel 14
1.4.1 獲取Goldfish內核代碼 14
1.4.2 獲取MSM內核代碼 17
1.4.3 獲取OMAP內核代碼 17
1.4.4 編譯Android的Linux內核 17
第2章 Java虛擬機基礎 19
2.1 虛擬機的作用 19
2.2 Java虛擬機概述 20
2.2.1 JVM的數據類型 20
2.2.2 Java虛擬機體系結構 21
2.2.3 JVM的生命周期 25
2.3 JVM的安全性 26
2.3.1 JVM的安全模型 26
2.3.2 沙箱模型的4種組件 27
2.3.3 分析Java的策略機制 28
2.4 網絡移動性 29
2.4.1 現實需要網絡移動性 29
2.4.2 網絡移動性 30
2.5 內存異常和垃圾處理 31
2.5.1 內存分配中的棧和堆 31
2.5.2 運行時的數據區域 33
2.5.3 對象訪問 34
2.5.4 內存泄露 35
2.5.5 JVM的垃圾收集策略 36
2.5.6 垃圾收集器 37
2.6 Java內存模型 37
2.6.1 Java內存模型概述 38
2.6.2 主內存與工作內存 38
2.6.3 內存間交互操作 39
第3章 Dalvik和ART基礎 40
3.1 Dalvik VM和JVM的差異 40
3.2 Dalvik虛擬機的主要特征 41
3.3 Dalvik VM架構 42
3.3.1 Dalvik虛擬機的代碼結構 42
3.3.2 dx工具 44
3.3.3 Dalvik VM的進程管理 44
3.3.4 Android的初始化流程 44
3.4 Dalvik VM控制VM命令詳解 45
3.4.1 基本命令 45
3.4.2 擴展的JNI檢測 45
3.4.3 斷言 46
3.4.4 字節碼校驗和優化 46
3.4.5 Dalvik VM的運行模式 47
3.4.6 死鎖預測 47
3.4.7 dump堆棧追蹤 48
3.4.8 dex文件和校驗 48
3.4.9 產生標志位 48
3.5 ART機制基礎 48
3.5.1 什么是ART模式 48
3.5.2 ART優化機制基礎 50
第4章 分析JNI 52
4.1 JNI的本質 52
4.2 分析Java層 54
4.2.1 加載JNI庫 54
4.2.2 實現掃描工作 55
4.2.3 讀取并保存信息 56
4.2.4 刪除SD卡外的信息 58
4.2.5 直接轉向JNI 58
4.2.6 掃描函數scanFile 59
4.2.7 JNI中的異常處理 59
4.3 分析JNI層 60
4.3.1 將Native對象的指針保存到
Java對象 60
4.3.2 創建Native層的MediaScanner
對象 60
4.4 Native(本地)層 61
4.4.1 注冊JNI函數 61
4.4.2 完成注冊工作 63
4.4.3 動態注冊 64
4.4.4 處理路徑參數 65
4.4.5 掃描文件 66
4.4.6 添加TAG信息 66
4.4.7 總結函數JNI_OnLoad()與函數JNI_OnUnload()的用途 67
4.4.8 Java與JNI基本數據類型
轉換 67
4.4.9 JNIEnv接口 69
4.4.10 JNI中的環境變量 70
第5章 分析內存系統 71
5.1 分析Android的進程通信機制 71
5.1.1 Android的進程間通信(IPC)
機制Binder 71
5.1.2 Service Manager是Binder
機制的上下文管理者 72
5.1.3 Service Manager服務 86
5.2 匿名共享內存子系統詳解 89
5.2.1 基礎數據結構 89
5.2.2 初始化處理 90
5.2.3 打開匿名共享內存設備文件 91
5.2.4 內存映射 93
5.2.5 讀寫操作 94
5.2.6 鎖定和解鎖 95
5.2.7 回收內存塊 100
5.3 C 訪問接口層詳解 101
5.3.1 接口MemoryBase 101
5.3.2 接口MemoryBase 108
5.4 Java訪問接口層詳解 111
第6章 Android程序的生命周期管理 115
6.1 Android程序的生命周期 115
6.1.1 進程和線程 115
6.1.2 進程的類型 116
6.2 Activity的生命周期 116
6.2.1 Activity的幾種狀態 117
6.2.2 分解剖析Activity 117
6.2.3 幾個典型的場景 119
6.2.4 管理Activity的生命周期 119
6.2.5 Activity的實例化與啟動 120
6.2.6 Activity的暫停與繼續 120
6.2.7 Activity的關閉 銷毀與
重新運行 121
6.2.8 Activity的啟動模式 121
6.3 進程與線程 122
6.3.1 進程 122
6.3.2 線程 123
6.3.3 線程安全的方法 123
6.3.4 Android的線程模型 123
6.4 測試生命周期 125
6.5 Service的生命周期 129
6.5.1 Service的基本概念和用途 129
6.5.2 Service的生命周期詳解 129
6.5.3 Service與Activity通信 129
6.6 Android廣播的生命周期 133
6.6.1 Android 的廣播機制 133
6.6.2 編寫廣播程序 133
6.7 ART進程管理 135
第7章 IPC進程通信機制 147
7.1 Binder機制概述 147
7.2 Service Manager是Binder機制的
上下文管理者 148
7.2.1 入口函數 148
7.2.2 打開Binder設備文件 149
7.2.3 創建設備文件 149
7.2.4 管理內存映射地址空間 154
7.2.5 發生通知 156
7.2.6 循環等待 161
7.3 內存映射 162
7.3.1 實現內存分配功能 162
7.3.2 分配物理內存 164
7.3.3 釋放物理頁面 166
7.3.4 分配內核緩沖區 167
7.3.5 釋放內核緩沖區 168
7.3.6 查詢內核緩沖區 170
第8章 init進程詳解 171
8.1 init基礎 171
8.2 分析入口函數 172
8.3 配置文件詳解 174
8.3.1 init.rc簡介 174
8.3.2 分析init.rc的過程 176
8.4 解析service 179
8.4.1 Zygote對應的service action 179
8.4.2 init組織service 180
8.4.3 函數parse_service和parse_line_service 181
8.5 字段on 184
8.5.1 Zygote對應的on action 184
8.5.2 init組織on 185
8.5.3 解析on用到的函數 186
8.6 在init控制service 186
8.6.1 啟動Zygote 186
8.6.2 啟動service 187
8.6.3 4種啟動service的方式 191
8.7 控制屬性服務 194
8.7.1 引入屬性 194
8.7.2 初始化屬性服務 197
8.7.3 啟動屬性服務 197
8.7.4 處理設置屬性的請求 200
第9章 Dalvik VM的進程系統 202
9.1 Zygote(孕育)進程詳解 202
9.1.1 Zygote基礎 202
9.1.2 分析Zygote的啟動過程 203
9.2 System進程詳解 216
9.2.1 啟動System進程前的準備
工作 216
9.2.2 分析SystemServer 217
9.2.3 分析EntropyService 220
9.2.4 分析DropBoxManagerService 222
9.2.5 分析DiskStatsService 227
9.2.6 分析DeviceStorageManager Service 231
9.2.7 分析SamplingProfilerService 233
9.2.8 分析ClipboardService 241
9.3 應用程序進程詳解 247
9.3.1 創建應用程序 247
9.3.2 啟動線程池 256
9.3.3 創建信息循環 257
第10章 Dalvik VM運作流程詳解 259
10.1 Dalvik VM相關的可執行程序 259
10.1.1 dalvikvm、dvz和app_process
簡介 259
10.1.2 對比app_process和dalvikvm的
執行過程 260
10.2 初始化Dalvik虛擬機 262
10.2.1 開始虛擬機的準備工作 262
10.2.2 初始化跟蹤顯示系統 262
10.2.3 初始化垃圾回收器 263
10.2.4 初始化線程列表和主線程
環境參數 263
10.2.5 分配內部操作方法的表格
內存 264
10.2.6 初始化虛擬機的指令碼相關
的內容 264
10.2.7 分配指令寄存器狀態的
內存 264
10.2.8 分配指令寄存器狀態的內存
和*基本用的Java庫 265
10.2.9 初始化使用的Java類庫
線程類 266
10.2.10 初始化虛擬機使用的異常
Java類庫 267
10.2.11 初始化其他對象 268
10.3 啟動Zygote 276
10.3.1 在init.rc中配置Zygote啟動
參數 276
10.3.2 啟動Socket服務端口 276
10.3.3 加載preload-classes 277
10.3.4 加載preload-resources 277
10.3.5 使用folk啟動新進程 278
10.4 啟動SystemServer進程 278
10.4.1 啟動各種系統服務線程 279
10.4.2 啟動**個Activity 280
10.5 加載class類文件 281
10.5.1 DexFile在內存中的映射 281
10.5.2 ClassObject—Class在
加載后的表現形式 283
10.5.3 加載Class并生成相應
ClassObject的函數 283
10.5.4 加載基本類庫文件 284
10.5.5 加載用戶類文件 284
第11章 DEX文件詳解 285
11.1 DEX文件介紹 285
11.2 DEX文件的格式 285
11.2.1 map_list 286
11.2.2 string_id_item 288
11.2.3 type_id_item 291
11.2.4 proto_id_item 292
11.2.5 ield_id_item 293
11.2.6 method_id_item 293
11.2.7 class_def_item 294
11.3 DEX文件結構 297
11.3.1 文件頭(File Header) 297
11.3.2 魔數字段 298
11.3.3 檢驗碼字段 298
11.3.4 SHA-1簽名字段 300
11.3.5 map_off字段 300
11.3.6 string_ids_size和off字段 301
11.4 DEXFile接口詳解 303
11.4.1 構造函數 303
11.4.2 公共方法 304
11.5 DEX和動態加載類機制 306
11.5.1 類加載機制 306
11.5.2 具體加載 306
11.5.3 代碼加密 308
11.6 動態加載jar和DEX 309
第12章 Dvlik VM內存系統詳解 310
12.1 如何分配內存 310
12.2 內存管理機制詳解 312
12.3 優化Dalvik虛擬機的堆內存分配 326
第13章 Dalvik VM垃圾收集機制 328
13.1 引用計數算法 328
13.2 Mark Sweep算法 328
13.3 和垃圾收集算法有關的函數 330
13.4 垃圾回收的時機 346
13.5 調試信息 347
13.6 Dalvik VM和JVM垃圾收集機制的
區別 348
第14章 Dalvik VM內存優化機制詳解 350
14.1 sp和wp簡介 350
14.1.1 sp基礎 350
14.1.2 wp基礎 351
14.2 智能指針詳解 351
14.2.1 智能指針基礎 352
14.2.2 輕量級指針 353
14.2.3 強指針 355
14.2.4 弱指針 365
第15章 分析Dalvik VM的啟動過程 369
15.1 Dalvik VM啟動流程概覽 369
15.2 Dalvik VM啟動過程詳解 370
15.2.1 創建Dalvik VM實例 370
15.2.2 指定一系列控制選項 371
15.2.3 創建并初始化Dalvik VM
實例 376
15.2.4 創建JNIEnvExt對象 378
15.2.5 設置當前進程和進程組ID 382
15.2.6 注冊Android核心類的JNI
方法 382
15.2.7 創建javaCreateThreadEtc
鉤子 385
第16章 注冊Dalvik VM并創建線程 387
16.1 注冊Dalvik VM的JNI方法 387
16.1.1 設置加載程序 387
16.1.2 加載so文件并驗證 387
16.1.3 獲取描述類 392
16.1.4 注冊JNI方法 392
16.1.5 實現JNI操作 394
16.2 創建Dalvik VM進程 395
16.2.1 分析底層啟動過程 395
16.2.2 創建Dalvik VM進程 395
16.2.3 初始化運行的Dalvik VM 398
16.3 創建Dalvik VM線程 399
16.3.1 檢查狀態值 399
16.3.2 創建線程 399
16.3.3 分析啟動過程 402
16.3.4 清理線程 404
第17章 Dalvik VM異常處理詳解 407
17.1 Java異常處理機制 407
17.1.1 方法調用棧 407
17.1.2 Java提供的異常處理類 409
17.2 Java VM異常處理機制詳解 409
17.2.1 Java語言及虛擬機的異常
處理機制 410
17.2.2 COSIX虛擬機異常處理的
設計與實現 410
17.3 分析Dalvik虛擬機異常處理的
源碼 414
17.3.1 初始化虛擬機使用的異常
Java類庫 414
17.3.2 拋出一個線程異常 415
17.3.3 持續拋出進程 415
17.3.4 找出異常原因 416
17.3.5 找出異常原因 417
17.3.6 清除掛起的異常和等待
初始化的異常 420
17.3.7 包裝“現在等待”異常的
不同例外 420
17.3.8 輸出跟蹤當前異常的錯誤
信息 421
17.3.9 搜索和當前異常相匹配的
方法 421
17.3.10 獲取匹配的捕獲塊 423
17.3.11 進行堆棧跟蹤 424
17.3.12 生成堆棧跟蹤元素 425
17.3.13 將內容添加到堆棧跟蹤
日志中 426
17.3.14 將內容添加到堆棧跟蹤
日志中 427
17.4 常見異常的類型與原因 428
17.4.1 SQLException:操作數據庫
異常類 428
17.4.2 ClassCastException:數據
類型轉換異常 428
17.4.3 NumberFormatException:
字符串轉換為數字類型時
拋出的異常 428
17.5 調用堆棧跟蹤分析異常 429
17.5.1 解決段錯誤 429
17.5.2 跟蹤Android Callback調用
堆棧 431
第18章 JIT編譯 434
18.1 JIT簡介 434
18.1.1 JIT概述 434
18.1.2 Java虛擬機主要的優化
技術 436
18.1.3 Dalvik中JIT的實現 436
18.2 Dalvik VM對JIT的支持 436
18.3 匯編代碼和改動 438
18.3.1 匯編部分代碼 438
18.3.2 對C文件的改動 438
18.4 Dalvik VM中的JIT源碼 439
18.4.1 入口文件 439
18.4.2 核心函數 447
18.4.3 編譯文件 450
18.4.4 BasicBlock處理 458
18.4.5 內存初始化 459
18.4.6 對JIT源碼的總結 462
第19章 Dalvik VM內存優化 463
19.1 Android內存優化的作用 463
19.2 查看Android內存和CPU使用情況 464
19.2.1 利用Android API函數查看 464
19.2.2 直接對Android文件進行
解析查詢 464
19.2.3 通過Runtime類實現 465
19.2.4 使用DDMS工具獲取 465
19.2.5 其他方法 469
19.3 Android的內存泄露 472
19.3.1 什么是內存泄漏 472
19.3.2 為什么會發生內存泄露 473
19.3.3 shallow size、retained size 474
19.3.4 查看Android內存泄露的
工具——MAT 475
19.3.5 查看Android內存泄露的
方法 478
19.3.6 Android(Java)中常見的容易
引起內存泄漏的不良代碼 480
19.4 常見的引起內存泄露的壞習慣 480
19.4.1 查詢數據庫時忘記
關閉游標 481
19.4.2 構造Adapter時不習慣使用
緩存的convertView 481
19.4.3 沒有及時釋放對象的引用 482
19.4.4 不在使用Bitmap對象時調用
recycle()釋放內存 482
19.5 解決內存泄露實踐 483
19.5.1 使用MAT根據heap dump分析Java代碼內存泄漏的根源 483
19.5.2 演練Android中內存泄露
代碼優化及檢測 489
第20章 Dalvik VM性能優化 491
20.1 加載APK DEX文件優化 491
20.1.1 APK文件介紹 492
20.1.2 DEX文件優化 493
20.1.3 使用類動態加載技術實現
加密優化 493
20.2 SD卡優化 496
20.3 虛擬機優化詳解 497
20.3.1 平臺優化—ARM的流水線
技術 497
20.3.2 Android對C庫優化 501
20.3.3 優化創建的進程 504
20.3.4 渲染優化 504
第21章 分析ART的啟動過程 508
21.1 運行環境的轉換 508
21.2 運行 app_process 進程 509
21.3 準備啟動 512
21.4 創建運行實例 518
21.5 注冊本地JNI函數 519
21.6 啟動守護進程 520
21.7 解析參數 521
21.8 初始化類、方法和域 528
第22章 執行ART主程序 534
22.1 進入main主函數 534
22.2 查找目標類 535
22.2.1 函數LookupClass() 535
22.2.2 函數DefineClass() 537
22.2.3 函數InsertClass() 540
22.2.4 函數LinkClass() 541
22.3 類操作 543
22.4 實現托管操作 544
第23章 安裝APK應用程序 549
23.1 PackageManagerService概述 549

23.2 主函數main 549
23.3 調用初始化函數 550
23.4 創建PackageManagerService服務 553
23.5 掃描并解析 554
23.6 保存解析信息 570
第24章 ART環境安裝APK應用程序 572
24.1 Android安裝APK概述 572
24.2 啟動時安裝 572
24.3 ART安裝 581
24.4 實現dex2oat轉換 586
24.4.1 參數解析 586
24.4.2 創建 OAT文件指針 588
24.4.3 dex2oat準備工作 588
24.4.4 提取classes.dex文件 589
24.4.5 創建OAT文件 594
24.5 APK文件的轉換 595信息
展開全部

深入解析Android虛擬機 作者簡介

計算機碩士,精通C、C 、Linux、Java開發技術,擅長多媒體硬件處理、多媒體信號采集、嵌入式系統集成、物聯網、大數據等開發技術,對藍牙技術、傳感器、NFC數據傳播、紅外傳輸技術有獨特的見解。畢業后就職于施耐德公司,負責智能家居系統的研究、開發和產品設計工作,和開發團隊一起研究出多款功能強大的智能家居、健康儀器、智能電視、車載設備等大型系統。在Android底層架構和驅動開發方面有著豐富的經驗,硬件驅動開發專家。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 工业PH计|工业ph酸度计|在线PH计价格-合肥卓尔仪器仪表有限公司 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 免费个人pos机申请办理-移动pos机刷卡-聚合收款码办理 | 写方案网_方案策划方案模板下载| 氧氮氢联合测定仪-联测仪-氧氮氢元素分析仪-江苏品彦光电 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 顺景erp系统_erp软件_erp软件系统_企业erp管理系统-广东顺景软件科技有限公司 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 | 小型玉石雕刻机_家用玉雕机_小型万能雕刻机_凡刻雕刻机官网 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 柴油机_柴油发电机_厂家_品牌-江苏卡得城仕发动机有限公司 | 锯边机,自动锯边机,双面涂胶机-建业顺达机械有限公司 | 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 蜂蜜瓶-玻璃瓶-玻璃瓶厂-玻璃瓶生产厂家-徐州贵邦玻璃制品有限公司 | 芜湖厨房设备_芜湖商用厨具_芜湖厨具设备-芜湖鑫环厨具有限公司 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | TMT观察网_独特视角观察TMT行业 派财经_聚焦数字经济内容服务平台 | 台式恒温摇床价格_大容量恒温摇床厂家-上海量壹科学仪器有限公司 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 创绿家招商加盟网-除甲醛加盟-甲醛治理加盟-室内除甲醛加盟-创绿家招商官网 | 尚为传动-专业高精密蜗轮蜗杆,双导程蜗轮蜗杆,蜗轮蜗杆减速机,蜗杆减速机生产厂家 | 起好名字_取个好名字_好名网免费取好名在线打分 | 福建珂朗雅装饰材料有限公司「官方网站」 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 电动葫芦|环链电动葫芦-北京凌鹰名优起重葫芦 | 收录网| 联系我们老街华纳娱乐公司官网19989979996(客服) | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 | 阜阳在线-阜阳综合门户 | 螺旋压榨机-刮泥机-潜水搅拌机-电动泥斗-潜水推流器-南京格林兰环保设备有限公司 | 优宝-汽车润滑脂-轴承润滑脂-高温齿轮润滑油脂厂家 | 北京发电车出租-发电机租赁公司-柴油发电机厂家 - 北京明旺盛安机电设备有限公司 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 |