Android与SNMP协议

Android狂记忆

虽然说技术人员偏爱实战,而不屑理论或记忆,但实战之前,若是记忆一些知识,开发起来将会如虎添翼,不说了,开始狂记吧!

  

Android 系统包说明:

android.app  :提供高层的程序模型、提供基本的运行环境

android.content  :包含各种的对设备上的数据进行访问和发布的类

android.database  :通过内容提供者浏览和操作数据库

android.graphics  :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.

android.location  :定位和相关服务的类

android.media  :提供一些类管理多种音频、视频的媒体接口

android.net  :提供帮助网络访问的类,超过通常的Java.net.* 接口

android.os  :提供了系统服务、消息传输、IPC 机制

android.opengl  :提供OpenGL 的工具

android.provider  :提供类访问Android 的内容提供者

android.telephony  :提供与拨打电话相关的API 交互

android.view  :提供基础的用户界面接口框架

android.util  :涉及工具性的方法,例如时间日期的操作

android.webkit  :默认浏器操作接口

android.widget  :包含各种 UI 元素(大部分是可见的)在应用程序的屏幕中使用

 

布局和容器:

帧布局(FrameLayout)

放入其中的所有元素都被放置最左上的区域,无法为这些元素指定一个确切的位置。 如果有多个子元素,那么后边的子元素的显示会重叠在前一个元素上。

线性布局(LinearLayout)

常用布局,子元素按行或列依次排列。

android:layout_gravity 是本元素对父元素的重力方向。 
android:gravity 是本元素所有子元素的重力方向。

绝对布局(AbsoluteLayout)

可以让子元素指定准确的 x/y 坐标值,(0, 0)为左上角,没有页边框,允许元素之间互相重叠。

相对布局(RelativeLayout)

允许子元素指定他们相对于其它元素或父元素的位置(通过 ID 指定)

表格布局(TableLayout)

将子元素的位置分配到行(TableRow)中,注意不会显示边框线也不能够跨行合并单 元格。

选项卡(TabWidget)

基本组件:

TextView、AutoCompleteText

EditText

Spinner下拉列表

ProgressBar

SeekBar拖动条

RatingBar评分条

Button、ImageButton

ImageView、Gallery

DatePicker、TimePicker、DatePickerDialog、TimePickerDialog

AnalogClock、DigitalClock

Chronometer计时器

RadioGroup、RadioButton、CheckBox、ToggleButton

GridView、ListView

AlertDialog、ProgressDialog

Menu

Toast、类似于 MessageBox,非模式窗口

GestureOverLayView

HorizontalScrollView

MapView

VideoView

WebView

ZoomControls

 

XML属性:(几乎所有View类的子类或间接子类都拥有下面属性)

属性名称

描述

android:autoLink

设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)

只有在同时设置的text才自动识别链接,后来输入的无法自动识别

android:autoText

如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。

android:bufferType

指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,

也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式

android:capitalize

设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。

sentences仅第一个字母大写;words每一个单词首字母大小,用空格区分单词;characters每一个英文字母都大写。在模拟器上用PC键盘直接输入可以出效果,但是用软键盘无效果。

android:cursorVisible

设定光标为显示/隐藏,默认显示。

android:digits

设置允许输入哪些字符。如“1234567890.+-*/%\n()”

android:drawableBottom

在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。

android:drawableLeft

在text的左边输出一个drawable,如图片。

android:drawablePadding

设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。

android:drawableRight

在text的右边输出一个drawable,如图片。

android:drawableTop

在text的正上方输出一个drawable,如图片。

android:editable

设置是否可编辑。这里无效果,参见EditView。

android:editorExtras

设置文本的额外的输入数据。在EditView再讨论。

android:ellipsize

设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)

android:freezesText

设置保存文本的内容以及光标的位置。参见:这里。

android:gravity

设置文本位置,如设置成“center”,文本将居中显示。

android:hint

Text为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。比较奇怪的是TextView本来就相当于Label,怎么会不设置Text?!

android:imeOptions

附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。这个在EditView中再详细说明,此处无用。

android:imeActionId

设置IME动作ID。在EditView再做说明,可以先看这篇帖子:这里。

android:imeActionLabel

设置IME动作标签。在EditView再做说明。

android:includeFontPadding

设置文本是否包含顶部和底部额外空白,默认为true。

android:inputMethod

为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。

android:inputType

设置文本的类型,用于帮助输入法显示合适的键盘类型。在EditView中再详细说明,

none、text、textCapCharacters字母大小、textCapWords单词首字母大小、textCapSentences仅第一个字母大小、textAutoCorrect、textAutoComplete自动完成、textMultiLine多行输入、textImeMultiLine输入法多行(如果支持)、textNoSuggestions不提示、textEmailAddress电子邮件地址、textEmailSubject邮件主题、textShortMessage短信息、textLongMessage长讯息、textPersonName人名、textPostalAddress地址、textPassword密码、textVisiblePassword可见密码、textWebEditText作为网页表单的文本、textFilte文本筛选过滤、textPhonetic拼音输入、numberSigned有符号数字格式、numberDecimal可带小数点的浮点格式、phone电话号码、datetime时间日期、date日期、time时间

android:linksClickable

设置链接是否点击连接,即使设置了autoLink。

android:marqueeRepeatLimit

在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。

android:ems

设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度,如图:

android:maxEms

设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。

android:minEms

设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。

android:maxLength

限制显示的文本长度,超出部分不显示。

android:lines

设置文本的行数,设置两行就显示两行,即使第二行没有数据。

android:maxLines

设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。

android:minLines

设置文本的最小行数,与lines类似。

android:lineSpacingExtra

设置行间距。

android:lineSpacingMultiplier

设置行间距的倍数。如”1.2”

android:numeric

如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。

android:password

以小点”.”显示文本

android:phoneNumber

设置为电话号码的输入方式。

android:privateImeOptions

设置输入法选项,此处无用,在EditText将进一步讨论。

android:scrollHorizontally

设置文本超出TextView的宽度的情况下,是否出现横拉条。

android:selectAllOnFocus

如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。TextView中设置后无效果。

android:shadowColor

指定文本阴影的颜色,需要与shadowRadius一起使用。效果:

android:shadowDx

设置阴影横向坐标开始位置。

android:shadowDy

设置阴影纵向坐标开始位置。

android:shadowRadius

设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。

android:singleLine

设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行

android:text

设置显示文本.

android:textAppearance

设置文字外观。如“?android:attr/textAppearanceLargeInverse

”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse

android:textColor

设置文本颜色

android:textColorHighlight

被选中文字的底色,默认为蓝色

android:textColorHint

设置提示信息文字的颜色,默认为灰色。与hint一起使用。

android:textColorLink

文字链接的颜色.

android:textScaleX

设置文字之间间隔,默认为1.0f。分别设置0.5f/1.0f/1.5f/2.0f效果如下:

 

android:textSize

设置文字大小,推荐度量单位”sp”,如”15sp”

android:textStyle

设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开

android:typeface

设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]

android:height

设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)

android:maxHeight

设置文本区域的最大高度

android:minHeight

设置文本区域的最小高度

android:width

设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width的区别看这里。

android:maxWidth

设置文本区域的最大宽度

android:minWidth

设置文本区域的最小宽度

 

参考http://android.yaohuiji.com/archives/category/android-basic



提示:如果上面显示空白或者页面排版混乱、内容显示不完整等影响阅读的问题,请点击这儿浏览原文

返回脚本百事通首页    如果您喜欢IT行业或者对IT行业感兴趣,欢迎加入本站官方QQ群:246889341,在群里认识新朋友和交流技术^_^

0
该内容对我有帮助

CloudStack 4.2 新功能:集成SNMP进行系统监控(原理篇)

作者微博:http://weibo.com/tianchunfeng

CloudStack 4.2 版本发布在即,相信不久后对 4.2 版本新功能(共有13个)的介绍会逐渐多起来。因为无论是从架构底层的重构还从构建更灵活的IAAS功能上,CloudStack又上了一个新台阶。在这诸多的更新中,我想介绍一下CloudStack对事件机制的增强,使用SNMP协议对CloudStack进行监控。可能这个改进比较小,或者对SNMP机制的支持还不够彻底,以至于4.2版本的ChangeLog里都没有提及它。毕竟对云平台运维的监控无论怎么强调其重要性都不过分,多一个监控视角就多一分运维保障。

在CloudStack 4.2之前的版本中事件/警告是在CloudStack内部完成生产和消费的,通过CloudStack Dashboard 和 Events菜单查看(如下图)。由于功能耦合度太高,不能把事件输出到CloudStack以外第三方监控系统中。在CloudStack支持插件机制后,与第三方监控系统的集成就能很方便实现了,目前CloudStack默认实现事件对SNMP和Syslog的输出。

CloudStack DashBoard

CloudStack DashBoard 

SNMP基础原理介绍:

SNMP(Simple Network Management Protocol的简称)是Internet协议家族的标准成员,工作在TCP/IP模型的应用层。几乎所有的主流监控软件(Zenoss,Cacti)都内置了对SNMP的支持,国内做监控服务很好的监控宝甚至提供了在线SNMP测试:http://www.jiankongbao.com/labs/snmp 。

一个SNMP管理系统的有以下必备组件(如下图):

1、被监控管理的设备;
2、SNMP Agent  运行在被监控设备上的代理软件;
SNMP Agent 使用UPD协议在161端口上接收请求。
3、SNMP Manager 运行在管理服务设备上的软件:
Network management system (NMS)
SNMP manager可以使用任意端口向Agent发出请求。SNMP Manager使用162端口接收请求。

SNMP监控网络中各角色的通信方式如下(如下图):

1、Manager可以对Agent发起:GET/SET请求(读/写)
2、Agent可以对Manager发起:  GET/SET请求
3、Agent可以对Manager发起:Trap请求 (异步方式)

 

 

以上三种通信方式有不同的使用场景。

在日常运维监控系统中一般使用SNMP的GET(读)请求了解被监控方的内部运行数据,也就是第一种通信方式中的GET请求,由监控系统把数据Pull拉过来。其实也可以使用第二/三种通讯方式,由被监控方主动把数据Push推到管理服务器中。

CloudStack使用SNMP向监控系统提供事件类非连续的字符消息事件,最合适的通信方式是使用第三种Trap方式,当有事件发生时主动把事件Push推到外部第三方监控系统中。

由于被管理设备种类繁多,每个设备可以有不同的被管理对象,并且生产设备是一种市场行为,这导致SNMP协议本身不可能预先指定被管理设备对象的识别代码。因此SNMP把设备识别的标准定义工作外包给了第三方机构IETF和IEEE 。这就是MIB数据库(management information base)。

MIB是树状结构组成的,在最末端的叶子节点是OID( object identifiers ),每一个OID对应唯一的变量名。SNMP网络中的管理方和被管理方就是靠这些唯一的变量名进行交换数据的。既然MIB是一个数据库,自然可以对预先指定的被管理对象进行浏览,查询。推荐给大家一个工具:snmpB http://sourceforge.net/projects/snmpb/ 。

CloudStack使用的MIB分支是:1.3.6.1.4.1.18060.15 ,其中 18060 是分配给apache的代码,15是分配给CloudStack的根代码,所有CloudStack的SNMP OID代码都在1.3.6.1.4.1.18060.15 分支下 。

 

CloudStack中Trap事件的SNMP映射定义:

在CloudStack发送的事件消息中每个Trap消息都包含以下共同的数据:

  1. message
  2. podId
  3. dataCenterId
  4. clusterId
  5. generationTime

在CloudStack 4.2中共定义了如下trap消息:(所有数据都以全局配置阈值为基准)

  1. availableMemory : 可用内存
  2. availableCpu :  未分配的cpu
  3. availableStorage :  可用存储
  4. remainingStorageAllocated : 保留的未分配存储
  5. unallocatedVirtualNetworkpublicIp : 未分配的public IP数量
  6. unallocatedPrivateIp :未分配的私有IP数量
  7. availableSecondaryStorage : 二级存储中可用量
  8. host : 与主机相关的警告
  9. userVmState : 用户虚拟机异常停止
  10. domainRouterVmState : Domain Router 虚拟机异常停止
  11. consoleProxyVmState : CPVM异常停止
  12. routingConnection : 与默认路由的链接丢失
  13. storageIssueSystemVms : 系统虚拟机中存储有问题
  14. usageServerStatus : usage server未运行
  15. managmentNode : 管理网络CIDR没有配置
  16. domainRouterMigrate : Domain Router 虚拟机迁移不成功
  17. consoleProxyMigrate : CPVM迁移不成功
  18. userVmMigrate  : 用户虚拟机迁移不成功
  19. unallocatedVlan : 未分配的VLan数
  20. ssvmStopped : SSVM异常停止
  21. usageServerResult :  Usage job failed
  22. storageDelete : 删除存储池失败
  23. updateResourceCount : 更新资源计数失败
  24. usageSanityResult : 使用合理性检查
  25. unallocatedDirectAttachedPublicIp :未分配的共享网络IP数
  26. unallocatedLocalStorage : 剩余的未分配本地存储
  27. resourceLimitExceeded : 超过限制的资源数

以availableMemory为例,SNMP OID的原始消息描述如下:

availableMemory NOTIFICATION-TYPE
OBJECTS {
dataCenterId,
podId,
clusterId,
message,
generationTime
}
STATUS current
DESCRIPTION
“Available Memory below configured threshold”
::= { csAlertTraps 1 }

详情查看:https://cwiki.apache.org/confluence/download/attachments/30747160/CS-ROOT-MIB.mib?version=1&modificationDate=1362442825000

CloudStack SNMP 事件机制的设计需求(原文):

-          生成可被外部监控系统识别的SNMP traps,外部设备包括SCOM/OpenView等 。
-          生成的traps要兼容SNMP v1、v2,优先支持v2。
-          提供必须需的MIB信息
-          能够指定trap消息发送的接收方,即trap listener。
-          traps消息包含事件严重级别和SNMP 警告的条件实体。
-          可指定多大20个外部traps listener 。
-          支持根据事件严重级别,配置相应的traps listener。
-          支持通过api进行注册traps listener和警告类型。

 

CloudStack中cloud-plugin-snmp-alerts项目介绍:

eclipse中项目名称:cloud-plugin-snmp-alerts

代码文件路径:[GITDIR]/cloudstack/plugins/alert-handlers/snmp-alerts/

SNMP相关类:

  • SnmpHelper
  • CsSnmpConstants
  • SnmpEnhancedPatternLayout
  • SnmpTrapInfo
  • SnmpTrapAppender

以上五个Java类的关系是:

1、根据log4j中appender的配置,由SnmpTrapAppender 接收Log4j的LoggingEvent日志事件;
2、根据SnmpEnhancedPatternLayout的描述转换成SNMP需要的SnmpTrapInfo格式;
3、使用SnmpHelper发送给外部的SNMP Manager;
4、CsSnmpConstants是辅助类,提供静态的MIB OID配置信息;

CloudStack中的事件输出是由日志驱动的,对log4j日志文件的修改如下:
文件名:log4j-cloud.xml
修改内容:
<appender name=”SNMP”c2 c12″ style=”font-size: 12pt; font-weight: bold;”>SnmpTrapAppender”>
<param name=”Threshold” value=”WARN”/>
<param name=”SnmpManagerIpAddresses” value=”"/>
<param name=”SnmpManagerPorts” value=”"/>
<param name=”SnmpManagerCommunities” value=”"/>
<layoutc2 c12″ style=”font-size: 12pt; font-weight: bold;”>SnmpEnhancedPatternLayout”>
<param name=”PairDelimeter” value=”//”/>
<param name=”KeyValueDelimeter” value=”::”/>
</layout>
</appender>

本文从SNMP运行原理的角度介绍了CloudStack使用SNMP把事件输出到第三方外部监控系统的集成方法。希望能对关心CloudStack运维关心的朋友有所帮助。下一篇将介绍SNMP监控的实例演示。

本文首发:CloudStack-china中国社区

 



提示:如果上面显示空白或者页面排版混乱、内容显示不完整等影响阅读的问题,请点击这儿浏览原文

返回脚本百事通首页    如果您喜欢IT行业或者对IT行业感兴趣,欢迎加入本站官方QQ群:246889341,在群里认识新朋友和交流技术^_^

0
该内容对我有帮助

Cordova CLI源码分析(一)——简介

本系列文章分析基于node.js的命令行工具Cordova CLI,所以如果对node.js基础不是很了解,建议参考http://nodejs.gamesys.net/node-js提供的基础教程

 

文中提到的包和模块是同一概念

 

1、简介

Cordova CLI是一个基于node.js的命令行工具,用于编译、部署和管理跨平台的Cordova 混合应用程序。

Apache Cordova 使开发者运用Html, CSSjavascript就能够构建原生移动应用

 

支持平台

l Android

l BlackBerry 10

l iOS

l Windows Phone 7 & 8

 

运行环境

Node.js

各平台SDK

安装

 

npm install -g cordova

 

 

默认安装路径

C:\Documents and Settings\xxx\Application Data\npm\node_modules\cordova\src

 

2、命令参数

 

全局命令

create <directory> [<id> [<name>]] 创建一个新的 cordova项目,三个参数分别是 保存路径,项目id,项目名称(反域名格式com.xxx.xxxx 

 

项目命令

platform [ls | list] list all platforms the project will build to

platform add <platform> [<platform> ...] add one (or more) platforms as a build target for the project

platform [rm | remove] <platform> [<platform> ...] removes one (or more) platforms as a build target for the project

plugin [ls | list] list all plugins added to the project

plugin add <path-to-plugin> [<path-to-plugin> ...] add one (or more) plugins to the project

plugin [rm | remove] <plugin-name> [<plugin-name> ...] remove one (or more) added plugins

prepare [platform...] copies files into the specified platforms, or all platforms. it is then ready for building by Eclipse/Xcode/etc.

compile [platform...] compiles the app into a binary for each added platform. With no parameters, builds for all platforms, otherwise builds for the specified platforms.

build [<platform> [<platform> [...]]] an alias for cordova prepare followed by cordova compile

emulate [<platform> [<platform> [...]]] launch emulators and deploy app to them. With no parameters emulates for all platforms added to the project, otherwise emulates for the specified platforms

serve <platform> [port] launch a local web server for that platform's www directory on the given port (default 8000).

 

可选参数

-d或--verbose 添加调式信息输出

-v 或--version 输出cordova-cli版本信息

3、目录结构

 

运行cordova create hello hellotest com.xxx.hellotest

 

hello/

|--.cordova/

| | -- hooks/

| | -- config.json

|-- merges/

| | -- android/

| | -- blackberry10/

| | -- ios/

|-- www/

| `-- config.xml

|-- platforms/

| |-- android/

| |-- blackberry10/

| `-- ios/

`-- plugins/

刚创建完的merges,platforms,plugins都是空目录,而.cordova/config.json包含create创建时指定的参数{"id":"hellotest","name":"com.xxx.hellotest"}

 

(1).cordova目录是辨别是否是cordova项目的重要标志,存储一些配置文件和信息;

(2)www目录下存放的是各个平台上一致的web文件,即每个平台使用相同代码,当调用prepare命令时,拷贝此目录下内容到platforms下原生目录;

     config.xml是符合W3C's Packaged Web Apps (Widgets) 标准的配置文件,通过修改config.xml中参数值,cordova-cli完成应用参数的修改

示例:

<?xml version='1.0' encoding='utf-8'?>

<widget id="hellotest" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

    <name>com.jinkai.hellotest</name>

    <description>

        A sample Apache Cordova application that responds to the deviceready event.

    </description>

    <author email="dev@callback.apache.org" href="http://cordova.io">

        Apache Cordova Team

    </author>

    <content src="index.html" />

    <access origin="*" />

    <preference name="fullscreen" value="true" />

<preference name="webviewbounce" value="true" />

<plugins>

     <plugin name="MyPlugin" value="MyPluginClass" />

</plugins>

<content src="index.html" />

</widget>

 

其中主要有以下几个参数:

<name> 展示给用户的应该程序名称

<widget> id属性指定包名(bundle identifier 或application id)

<widget> version属性版本

<access> 中 origin 属性,指定网络访问白名单

<preference>  用于存储一些键值对参数

<plugin> 定义原生插件,当运行时Cordova framework确保应用可以调用设备的API接口

<content> 定义web起始页,默认值是index.html

 

(3)merges目录下存放的是有平台差异的web文件,当调用prepare命令时,拷贝此目录下内容到platforms下原生目录,如果有同名www目录下文件存在,merges目录下文件将覆盖www下文件;

例如存在以下目录结构

merges/

|-- ios/

| `-- app.js

|-- android/

| `-- android.js

www/

`-- app.js

最终编译时,platforms目录下,android目录包含android.jsapp.js,iOS目录包含app.js,这个文件与merges目录下ios/app.js一致,即merges目录下文件覆盖www目下文件

 

4platforms 各平台原生应用程序目录结构

5plugins 所有插件将会解压后放在此目录

6hooks 定义一系列回调函数

包含两类:项目指定和模块指定函数

 

 

4、Cordova CLI使用流程

(1)创建应用 cordova create (创建应用程序骨架)

cordova create hello hellotest com.jinkai.hellotest

(2)添加平台 cordova platform add 

cd hello

Mac支持平台

$ cordova platform add ios

$ cordova platform add android

$ cordova platform add blackberry10

Windows支持平台

$ cordova platform add wp7

$ cordova platform add wp8

$ cordova platform add android

$ cordova platform add blackberry10

 

查看支持平台

cordova platform ls

 

删除

$ cordova platform remove blackberry10

$ cordova platform rm android

 

3)编译cordova build(在platforms目录下生成平台代码)

$ cordova build ios

 

等价于顺序执行以下两个步骤

 

 $ cordova prepare ios

 $ cordova compile ios

 

 

(4)测试

$ cordova emulate android

 

(5)添加插件

 

安装插件cordova plugin add

 

Basic device information (Device API):

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git

 

Network Connection and Battery Events:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status.git

 

Accelerometer, Compass, and Geolocation:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-motion.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-orientation.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git

 

Camera, Media playback and Capture:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-media.git    

 

Access files on device or network (File API):

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer.git

 

Notification via dialog box or vibration:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-vibration.git

 

Contacts:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts.git

 

Globalization:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-globalization.git

 

Splashscreen:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git

 

Open new browser windows (InAppBrowser):

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git

 

Debug console:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-console.git

 

查看已安装插件plugin ls 或plugin list 或plugin

$ cordova plugin ls    # or 'plugin list'

[ 'org.apache.cordova.core.console' ]

删除插件

 

$ cordova plugin rm org.apache.cordova.core.console        

$ cordova plugin remove org.apache.cordova.core.console    # same


 






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值