MediaTek平台缩写管理

结语

野史上一度有为数不少JavaScript的营造筑工程具。
每种人都盘算以团结的章程缓解1个一定的难点。
这几个规范已经开端迎头赶上,基本语义的渴求也更少了。
相反,工具得以在更高层次上竞争,并推进更好的用户体验。
常常,您能够联手行使多少个独立的消除方案。

因此看来:

  • 自动化塑造筑工程具和包装工具化解差异的难题。
    您可以经过双方完毕类似的结果,但平常最好将它们一起行使来互相补充。
  • 较早的工具(如Make或RequireJS)照旧有着影响力,即便它们在前端开发中不如往年那样受欢迎。
  • Bundinner如Browserify或webpack化解了三个重要的标题,并赞助您管理复杂的Web应用程序。
  • 部分新兴技术从分裂的角度化解难题。
    有时候它们建立在其它工具之上,有时它们得以共同使用。

原博客备份

4
MCU
CC2540:
ChipCon
MSP:
TI, Mixed Signal Processor
EFM32:
Silicon Labs, Energy Friendly Microcontroller
LPC:
NXP, Low Power Consumption

Webpack

你能够说Webpack应用比Browserify更单一的措施。
Browserify由多个小工具组成,而Webpack提供了二个主题,它提供了很多创造性的职能。

Webpack宗旨能够使用一定的加载程序和插件举行扩充。
它能够操纵什么缓解模块,使你能够调动你的创设以分外特定情景和化解不能平时运作的软件包。

与任何工具相比较,Webpack具有早先复杂性,但经过其广阔的功用集成能够弥补这点。
那是一个内需耐心的尖端工具。
不过若是驾驭了幕后的基本思路,webpack就变得很强劲。

5
Misc
大切诺基MA:Return
Materials Authorization,芯片失效测试
貌似是指店铺内部的退货流程,假使第一商业局家售出某物品,
因为品质问题或出错货,客户必要退货,集团通过与客户关系后,确认客户能够退货。
SOP:斯坦dard
Operation Procedure,操作教导
SOP:Start
Of Production,起初量产
MFF:eSIM
M2M form factors

Make

就好像一九七九年先前时代公布的那样,Make再次回到了。就算它是3个旧工具,但它依然是连锁的。
Make允许你为各样目的编写单独的任务。
例如,您可以有两样的天职来创建生产营造,压缩JavaScript或运维测试。
您能够在许多别的工具中找到同样的不二法门。

固然Make主要用于C项目,但它并不以任何措施与C绑定。 JamesCoglan详细谈论了怎么样行使在JavaScript中央银行使马克
看一下下边包车型大巴James帖子里介绍的缩减代码的点子:

Makefile

PATH  := node_modules/.bin:$(PATH)
SHELL := /bin/bash

source_files := $(wildcard lib/*.coffee)
build_files  := $(source_files:%.coffee=build/%.js)
app_bundle   := build/app.js
spec_coffee  := $(wildcard spec/*.coffee)
spec_js      := $(spec_coffee:%.coffee=build/%.js)

libraries    := vendor/jquery.js

.PHONY: all clean test

all: $(app_bundle)

build/%.js: %.coffee
    coffee -co $(dir $@) $<

$(app_bundle): $(libraries) $(build_files)
    uglifyjs -cmo $@ $^

test: $(app_bundle) $(spec_js)
    phantomjs phantom.js

clean:
    rm -rf build

行使Make,您能够选用Make-specific语法和顶峰命令为你的义务建立模型,使其得以与webpack集成。

6
NXP
Access.bus:
USB前身
i.MX:
innovative Multimedia eXtended
ISPxxx
USB IC: 使用SRAM接口(ISA)连到CPU上。
MQX
RTOS: Message Queue eXecutive

Node和npm的风行,给它的包管理器提供了越多的行使环境。在npm普及此前,很难使用重视项。有一段时间,人们开发出了前者特定的包管理器,但npm最后赢得了征服。现在依靠管理比此前更便于了,即使还亟需制伏一些挑衅。

1
QCOM
WCD:
wafer codec/decode
WCN:
wireless connectivity network
WTR:
Wafer Transceiver
RTR:
Radio Transceiver
QCA:
Qualcomm Atheros
QFE:
Qualcomm Front-end
RFFE:
Radio Frequency Front-end
HDET:
High Power Detector
ASM:
Anntena Switch Module
MTP:
Modem Test Platform
CDP:
Core Development Platform
FFA:
Form Factor Accurate
SURF:
Subscriber Unit Reference Platform
XPU:
Embedded Memory Protected Unit
UniPro:
Universal Protocol
FLCB:
Fast Low Current Boot
MSM:
Mobile Station Modem
APQ:
Application Processor Qualcomm
SRLTE:
Simultaneous Radio and LTE
QSD:
Qualcomm Snapdragon
MDM:
Mobile Data Modem
MPQ:
Media Processor Qualcomm
QSC:
Qualcomm Single Chip
QPNP:
Qualcomm Plug and Play
PBM:
Phonebook Manager
FSG:
A golden file system
modemst:
modem efs partition
EDL:
Emergency Download
mbn:
Modem Configuration binary
CV:
customer visit
FFBM:
fast factory boot mode
PMxxxx:
xxxx PMIC Core
PMIxxxx:
xxxx PMIC Interface
SCHG:
Switching charger
TCSR:
Top Control and Status Register
IOC:
Interrupt on Completion, DWC3
ISP: 
Image signal processor
ISP:
Interrupt-on Short Packet, DWC3
CSP:
Continue on Short Packet , DWC3
IOA:
Interrupt on ACK, USB
IOT:
Interrupt on token, USB
IAA:
Interrupt on async advance, EHCI
PC:
parallel charger (并联充电模组)
haptics:
触觉反馈
Alternative
Mode: 替代格局
HVDCP3:
DPF_DMF values for floating(non-drive mode) and DPR_DMR values for
removing the float of DP/DM lines.
ThreadX:
X means context switching
CAT
M1: Category Minus 1
MTC:
Machine Type Communications
DSR:
Deferred Service Routine
HKADC:
Housekeeping ADC, 交互管理ADC
KBA:
Knowledge base article
DRI:
Directly Responsible Individual
GDHS:
Globally Distributed Head Switch(L2 cache)
RMA:
Return Material Authorization
IPO:
instant power on
QCMAP:
Qualcomm Mobile Access Point Service
Gobi:
Global Mobile Internet

初稿地址:https://survivejs.com/webpack/appendices/comparison/

2
Charge
2.1
MTK Charge
VCHG:USB正极
mp5T:VCHG
Charger Detect充电电压检查和测试脚
ISENSE:充电电流检查和测试电阻的正极
BATSNS:充电电流检查和测试电阻的负极
BAT:电池正极引脚
BAT_ON:电池NTC
(热敏电阻) 引脚
RECHARGING_VOLTAGE:
回充电压
OCV:Open
Circuit Voltage,开路电压
VC
(=VBAT):Voltage of Closed Circuit,闭路电压,Charge
ADC采集样品的到电压正是闭路电压
mAh:放电体积
DOD:Depth
of Discharging,放电深度百分比
哈弗(battery):电池内阻,(V2-V1)/400mA
CAR:库仑计
Cmax/Qmax:电池体积
SOP:
Standard Operation Procedure,操作引导
ZCV:Zero
current Voltage,一般指ZCV表格,也是挖掘电压的情趣
2.2
Misc
VOOC:Voltage
Open-Looped, Multi-Step Constant-Current
Charging,电压开环,多步恒流充电

职务运营程序与包装

野史上,已经有无数营造筑工程具。
Make大概是最着名的,它照旧是多少个灵光的选料。
专门的职分局维程序,如Grunt和Gulp,是尤其为JavaScript开发人士创立的。
通过npm提供的插件使得任务运转程序都强大而且可扩张。
甚至足以动用npm脚本作为天职运维程序。 那很宽泛,特别是webpack。

任务运转程序是高水准的光辉工具。 它们允许你以跨平台情势履行操作。
当您须要将各个能源拼接在联合署名并生育时,难题就会起初。
出于此原因,存在财富整合程序,如Browserify,Brunch或webpack。

有一段时间,RequireJS很受欢迎。
它的核心是提供3个异步模块的办法并树立在此之上。
AMD的格式在前边将会有更详实的介绍。
幸运的是,这个标准早已蒙受了,而且RequireJS就像是八个很好的启迪。

7
Sensor
PD索罗德:
Pedestrian Dead Reckoning,室内定位(计算相对地方的定势方法)
PD揽胜极光定位是一种基于传感器音讯计算相对地点的固化方法,首先通过加快度传感器检查和测试行人的步数并计算出步长,然后通过磁阻传感器和陀螺仪计算骑行人的航向角,最终拿到身体活动的相对地方从而完结稳定。相较于别的室钦赐位方法,PD锐界不受外界环境影响,定位精度较高,但不得不获得相对地点音信且存在累积误差。
PPG:
photoplethysmography,光电心率传感器,Apple 沃特ch用的正是那种

Brunch

与居尔p比较,Brunch在更高层次的架空上运营。
它使用类似于webpack的扬言方法。
以示范为例,您能够考虑从Brunch网站改编以下配置:

module.exports = {
  files: {
    javascripts: {
      joinTo: {
        'vendor.js': /^(?!app)/,
        'app.js': /^app/,
      },
    },
    stylesheets: {
      joinTo: 'app.css',
    },
  },
  plugins: {
    babel: {
      presets: ['es2015', 'react'],
    },
    postcss: {
      processors: [require('autoprefixer')],
    },
  },
};

Brunch包含像brunch new, brunch watch –server, and brunch build
–production。 它含有了广大创立性的功能,能够利用插件增添。

瞩目:Brunch有三个试验性的热模块重新加载程序

SDA:
Snapdragon Auto
Snapdragon
Mobile (SDM) = MSM
Snapdragon
Modem (SDX) = MDM
Snapdragon
Mobile (Compute) (SDA) = APQ
Snapdragon
Mobile (Compute) (SDC) = MSM
SDW:
Snapdragon Wear
SDW1100
= MDM9207-1
SDW1200
= 取MDM9206的Modem和Snapdragon Wear 1100/2100的AP
管理,SDW2100
= MSM8909w
G中华VL:格拉尼特e
River Labs ,U.S.A.工程测试认证实验室

由于这一个缘故,有各类策略来加载它们。您能够及时加载它们,可能考虑供给它们时加载。Webpack帮忙广大这么的政策。

8
USB
CCG2:
Type-C Controller Generation 2
EZ-USB:
AnchorChips
TDI:
TransDimension Inc.
ARC:
Advanced RISC Argonant
ISP1681/PDIUSBD12:
parallel data
interface,使用SRAM接口,类似于ISA总线

Browserify

拍卖JavaScript模块一贯是二个题材。 js语言自个儿并未模块的概念,直到ES6。
Ergo,那个语言在90年间被用在浏览器环境中。
已经提议了回顾AMD在内的各类化解方案。

Browserify是模块难点的叁个消除方案。
它能够将CommonJS模块捆绑在一道。
您能够将其与居尔p挂钩,您能够找到较小的转换工具,使你能够超越基本用法。
例如,watchify提供了一个在开发空闲的工作时期为你创设捆绑包的文书监视器。

Browserify生态系统由许多小模块组合。 那样,Browserify就适合Unix的理念。
Browserify比webpack更易于采纳,实际上它是三个很好的替代品。

注意:Splittable是多个Browserify包装器,允许代码分割,援救ES6开箱即用,Tree
shaking等等。

3
GPS
EPO:
Extended Prediction Orbit
GGA:
Global Positioning System Fix Data,定位信息
GLL:
Geographic Position, Latitude/Longitude,地位地理信息
GSA:
GPS DOP and Active Satellites,当风尚星新闻
GSV:
GPS Satellites in View,可見卫星音讯
福睿斯MC:
Recommend Minimum Specific GPS/TRANSIT Data,推荐定位音信
VTG:
Track Made Good and Ground Speed,地面速度消息
ZDA:
Time & Date,时间日期音讯

JSPM

使用JSPM与原先的工具截然不一样。
它附带了一个祥和的命令行工具,用于将新的软件包安装到花色中,创设三个生产包,等等。
它帮助SystemJS插件,能够将种种格式加载到项目中。

Gulp

Gulp选取两样的点子。
您不要求借助各个插件的安顿,而是处理实际的代码。
居尔p建立在管道概念之上。 借使你熟习Unix,那里也是均等的。
您必要遵照以下概念:

  • 出自匹配文件。
  • 对来自执行操作的过滤器(例如,转换为JavaScript)
  • 收受模块库(例如,您的创设目录)在哪儿管理创设结果。

那是一个示范的居尔pfile,能够让您更好地询问从类型的README中获取的方法。
它被缩写为三个接口:

Gulpfile.js

const gulp = require('gulp');
const coffee = require('gulp-coffee');
const concat = require('gulp-concat');
const uglify = require('gulp-uglify');
const sourcemaps = require('gulp-sourcemaps');
const del = require('del');

const paths = {
  scripts: ['client/js/**/*.coffee', '!client/external/**/*.coffee']
};

// 并不是所有的任务都需要使用流
// 一个gulpfile是另一个节点程序
// 你也可以在npm上使用所有的软件包
gulp.task(
  'clean',
  del.bind(null, ['build']
);

gulp.task(
  'scripts',
  ['clean'],
  () => (
    // 压缩和复制所有的JavaScript(除了供应商脚本)
    // 源代码一路下来
    gulp.src(paths.scripts)
      // 管道内
      .pipe(sourcemaps.init())
        .pipe(coffee())
        .pipe(uglify())
        .pipe(concat('all.min.js'))
      .pipe(sourcemaps.write())
      .pipe(gulp.dest('build/js'))
  )
);

// 文件更改时重新运行任务
gulp.task(
  'watch',
  gulp.watch.bind(null, paths.scripts, ['scripts'])
);

// 默认任务(从CLI运行`gulp`时调用)
gulp.task(
  'default',
  ['watch', 'scripts']
);

由于配置是代码,假设遇到麻烦,您总是能够将其删除。
您能够将现有的节点包作为居尔p插件,等等。
与Grunt比较,您能够更精通地询问产生了怎么。
固然如此,你依然最后写了成千成万模板作为闲时职责。 那正是立异的点子。

注意:webpack-stream同意你在居尔p环境中运用webpack。

注意:Fly是与居尔p类似的工具。
它借助于ES6发生器。

别的选项

你能够找到越来越多替代品,如下所列:

  • pundle鼓吹本人当做下一代打包工具,并尤其注意其属性。
  • Rollup根本关切打包es6的代码。Tree
    shaking是其卖点之一。您能够选拔Rollup与webpack的加载程序rollup-loader
  • AssetGraph动用完全差别的点子,建立在HTML语义之上,使其改为超链接分析结构分析的佳绩采取。webpack-assetgraph-plugin将webpack和AssetGraph结合在一道。
  • FuseBox是3个在意于速度的包装工具。
    它使用零配置格局,目的在于开箱即用。
  • StealJS是二个依靠加载器,叁个只顾于质量和易用性的营造筑工程具。
  • Flipbox将多个捆绑打包在1个集合的界面后边。

Grunt

Grunt在前端开发职员中是最受欢迎的。它的插件框架结构有助于它的风行,插件本人经常是扑朔迷离的,由此,当配置扩大时,很难精晓到底产生了什么。

以下是Grunt文书档案的示范
在此布局中,您定义二个linting和二个观看比赛职务。
当watch职责运转时,它也会触发lint任务。
那样,当您运营Grunt时,您能够在编辑源代码时在顶峰中实时发出警告。

Gruntfile.js

module.exports = (grunt) => {
  grunt.initConfig({
    lint: {
      files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
      options: {
        globals: {
          jQuery: true,
        },
      },
    },
    watch: {
      files: ['<%= lint.files %>'],
      tasks: ['lint'],
    },
  });

  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-watch');

  grunt.registerTask('default', ['lint']);
};

在实践中,您将有成都百货上千小的任务用于特定指标,例如创设项目。
Grunt有用的三个重点片段是它隐藏了大气的底细。

从远来说,那只怕会有标题。从Grunt的创设进程,你很难精晓它引擎工作的具体意况。

注意:grunt-webpack插件允许你在Grunt环境中应用webpack,同时将选取阶段提高到Webpack。

在原先,是能够将您的本子写在一块儿。
时代已经济体制革新变,未来将JavaScript代码分开来或然是3个错综复杂的做事。
随着单页应用程序(SPA)的勃兴,那么些难题早就升级。他们支持于依靠一些实惠的种类(来消除这一个题目)。

npm脚本作为自动化营造筑工程具

不怕npm
CLI(命令行界面)并非主要用以作为天职运维的次序,由于有package.json的脚本字段是之变成可能。
考虑下边包车型地铁例证:

package.json

"scripts": {
  "stats": "webpack --env production --json > stats.json",
  "start": "webpack-dev-server --env development",
  "deploy": "gh-pages -d build",
  "build": "webpack --env production"
},

那几个本子能够利用npm run列出,然后使用npm run <script>执行。
您还足以选用诸如test:watch那样的预定命名空间。
那种办法能够使它保持跨平台。

代表使用rm -rf,您只怕更期待利用诸如rimraf等实用程序。
在此地能够调用别的自动化营造筑工程具来掩藏你正在利用的具体细节。
那样,您能够在维持界面相同的气象下行使重构工具。

RequireJS

RequireJS可能是率先个变成真正受欢迎的本子加载程序。
它首先科学地引入了模块化JavaScript。 其最大的重力是速龙。
它引入了3个概念包装器:

define(['./MyModule.js'], function (MyModule) {
  return function() {}; // 模块入口
});

// 或者
define(['./MyModule.js'], function (MyModule) {
  return {
    hello: function() {...}, // 导出为模块函数
  };
});

顺手说一下,能够在包装器中应用require:

define(['require'], function (require) {
  var MyModule = require('./MyModule.js');

  return function() {...};
});

后一种方法更简短一点。 但您如故会遭逢多余的代码。
ES6等标准消除了这些标题。

注意:Jamund
弗格森撰写了一篇有关什么从RequireJS移植到webpack的精良博客连串。

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注