当前位置:文档之家› ReactJS中文API

ReactJS中文API

ReactJS中文API
ReactJS中文API

1.顶层API

1.1React

React是React库的入口。如果使用的是预编译包,则React是全局的;如果使用CommonJS模块系统,则可以用require()函数引入React。

1.1.1React.createClass

ReactClass createClass(object specification)

创建一个组件类,并作出定义。组件实现了render()方法,该方法返回一个子级。该子级可能包含很深的子级结构。组件与标准原型类的不同之处在于,你不需要使用new来实例化。组件是一种很方便的封装,可以(通过new)为你创建后台实例。

更多关于定义组件对象的信息,参考组件定义和生命周期。

1.1.2React.createElement

ReactElement createElement(

string/ReactClass type,

[object props],

[children...]

)

创建并返回一个新的指定类型的ReactElement。type参数可以是一个html标签名字字符串(例如,“div”,“span”,等等),或者是ReactClass(通过React.createClass创建的)。

1.1.3React.createFactory

factoryFunction createFactory(

string/ReactClass type

)

返回一个生成指定类型ReactElements的函数。比

如React.createElement,type参数可以是一个html标签名字字符串(例如,“div”,“span”,等等),或者是ReactClass。

1.1.4React.render

ReactComponent render(

ReactElement element,

DOMElement container,

[function callback]

)

渲染一个ReactElement到DOM中,放在container指定的DOM 元素下,返回一个到该组件的引用。

如果ReactElement之前就被渲染到了container中,该函数将会更新此ReactElement,仅改变需要改变的DOM节点以展示最新的React组件。

如果提供了可选的回调函数,则该函数将会在组件渲染或者更新之后调用。

注意:

React.render()替换传入的容器节点内容。在将来,或许可能插入组件到已存在的DOM节点中,但不覆盖已有的子节点。

1.1.5React.unmountComponentAtNode

boolean unmountComponentAtNode(DOMElement container)

从DOM中移除已经挂载的React组件,清除相应的事件处理器和state。如果在container内没有组件挂载,这个函数将什么都不做。如果组件成功移除,则返回true;如果没有组件被移除,则返回false。

1.1.6React.renderToString

string renderToString(ReactElement element)

把组件渲染成原始的HTML字符串。该方法应该仅在服务器端使用。React将会返回一个HTML字符串。你可以在服务器端用此方法生成HTML,然后将这些标记发送给客户端,这样可以获得更快的页面加载速度,并且有利于搜索引擎抓取页面,方便做SEO。

如果在一个节点上面调用React.render(),并且该节点已经有了服务器渲染的标记,React将会维护该节点,并且仅绑定事件处理器,保证有一个高效的首屏加载体验。

1.1.7React.renderToStaticMarkup

string renderToStaticMarkup(ReactElement element)

和renderToString类似,除了不创建额外的DOM属性,例

如data-react-id,因为这些属性仅在React内部使用。如果你想用React做一个简单的静态页面生成器,这是很有用的,因为丢掉额外的属性能够节省很多字节。

1.1.8React.isValidElement

boolean isValidElement(*object)

判断对象是否是一个ReactElement。

1.1.9React.DOM

React.DOM运用React.createElement为DOM组件提供了方便的包装。该方式仅在未使用JSX的时候适用。例如,React.DOM.div(null, 'Hello World!')。

1.1.10React.PropTypes

React.PropTypes包含了能与组件propTypes对象共用的类型,用于验证传入组件的props。更多有关propTypes的信息,参考复用组件。

1.1.11React.initializeTouchEvents

initializeTouchEvents(boolean shouldUseTouch)

配置React的事件系统,使React能处理移动设备的触摸(touch)事件。

1.1.12React.Children

React.Children为处理this.props.children这个封闭的数据结构提供了有用的工具。

React.Children.map

object React.Children.map(object children,function fn[,object context])

在每一个直接子级(包含在children参数中的)上调用fn函数,此函数中的this指向上下文。如果children是一个内嵌的对象或者数组,它将被遍历:不会传入容器对象到fn中。如果children参数是null或者undefined,那么返回null或者undefined而不是一个空对象。React.Children.forEach

React.Children.forEach(object children,function fn[,object context])

类似于React.Children.map(),但是不返回对象。

React.Children.count

number React.Children.count(object children)

返回children当中的组件总数,和传递给map或者forEach的回调函数的调用次数一致。

React.Children.only

object React.Children.only(object children)

返回children中仅有的子级。否则抛出异常。

2.组件API

2.1ReactComponent

React组件实例在渲染的时候创建。这些实例在接下来的渲染中被重复使用,可以在组件方法中通过this访问。唯一一种在React之外获取React组件实例句柄的方式就是保存React.render的返回值。在其它组件内,可以使用refs得到相同的结果。

2.1.1setState

setState(object nextState[,function callback])

合并nextState和当前state。这是在事件处理函数中和请求回调函数中触发UI更新的主要方法。另外,也支持可选的回调函数,该函数在setState执行完毕并且组件重新渲染完成之后调用。

注意:

绝对不要直接改变this.state,因为在之后调用setState()可能会替换掉你做的更改。把this.state当做不可变的。

setState()不会立刻改变this.state,而是创建一个即将处理的state转变。在调用该方法之后获取this.state的值可能会得到现有的值,而不是最新设置的值。

不保证setState()调用的同步性,为了提升性能,可能会批量执行state 转变和DOM渲染。

setState()将总是触发一次重绘,除非在shouldComponentUpdate()中实现了条件渲染逻辑。如果使用可变的对象,但是又不能

在shouldComponentUpdate()中实现这种逻辑,仅在新state和之前的state存在差异的时候调用setState()可以避免不必要的重新渲染。

2.1.2replaceState

replaceState(object nextState[,function callback])

类似于setState(),但是删除之前所有已存在的state键,这些键都不在nextState中。

2.1.3forceUpdate()

forceUpdate([function callback])

如果render()方法从this.props或者this.state之外的地方读取数据,你需要通过调用forceUpdate()告诉React什么时候需要再次运

行render()。如果直接改变了this.state,也需要调用forceUpdate()。

调用forceUpdate()将会导致render()方法在相应的组件上被调用,并且子级组件也会调用自己的render(),但是如果标记改变了,那么React仅会更新DOM。

通常情况下,应该尽量避免所有使用forceUpdate()的情况,

在render()中仅从this.props和this.state中读取数据。这会使应用大大简化,并且更加高效。

2.1.4getDOMNode

DOMElement getDOMNode()

如果组件已经挂载到了DOM上,该方法返回相应的本地浏览器DOM元素。从DOM中读取值的时候,该方法很有用,比如获取表单字段的值和做一些DOM操作。当render返回null或者false的时候,this.getDOMNode()返回null。

2.1.5isMounted()

bool isMounted()

如果组件渲染到了DOM中,isMounted()返回true。可以使用该方法保证setState()和forceUpdate()在异步场景下的调用不会出错。2.1.6setProps

setProps(object nextProps[,function callback])

当和一个外部的JavaScript应用集成的时候,你可能想给一个

用React.render()渲染的组件打上改变的标记。

尽管在同一个节点上再次调用React.render()来更新根组件是首选的方式,也可以调用setProps()来改变组件的属性,触发一次重新渲染。另

外,可以传递一个可选的回调函数,该函数将会在setProps完成并且组件重新渲染完成之后调用。

注意:

When possible,the declarative approach of

calling React.render()again is preferred;it tends to make updates easier to reason about.(There's no significant performance difference between the two approaches.)

刚方法仅在根组件上面调用。也就是说,仅在直接传

给React.render()的组件上可用,在它的子级组件上不可用。如果你倾向于在子组件上使用setProps(),不要利用响应式更新,而是当子组件在render()中创建的时候传入新的prop到子组件中。

2.1.7replaceProps

replaceProps(object nextProps[,function callback])

类似于setProps(),但是删除所有已存在的props,而不是合并新旧两个props对象。

3.组件的详细说明和生命周期(Component Specs and Lifecycle)

3.1组件的详细说明(Component Specifications)

当通过调用React.createClass()来创建组件的时候,你应该提供一个包含render方法的对象,并且也可以包含其它的在这里描述的生命周期方法。

3.1.1render

ReactComponent render()

render()方法是必须的。

当调用的时候,会检测this.props和this.state,返回一个单子级组件。该子级组件可以是虚拟的本地DOM组件(比如

者React.DOM.div()),也可以是自定义的复合组件。

你也可以返回null或者false来表明不需要渲染任何东西。实际上,React渲染一个

回null或者false的时候,this.getDOMNode()将返回null。

render()函数应该是纯粹的,也就是说该函数不修改组件state,每次调用都返回相同的结果,不读写DOM信息,也不和浏览器交互(例如通过使用setTimeout)。如果需要和浏览器交互,

在componentDidMount()中或者其它生命周期方法中做这件事。保持render()纯粹,可以使服务器端渲染更加切实可行,也使组件更容易被理解。

3.1.2getInitialState

object getInitialState()

在组件挂载之前调用一次。返回值将会作为this.state的初始值。3.1.3getDefaultProps

object getDefaultProps()

在组件类创建的时候调用一次,然后返回值被缓存下来。如果父组件没有指定props中的某个键,则此处返回的对象中的相应属性将会合并到this.props(使用in检测属性)。

该方法在任何实例创建之前调用,因此不能依赖于this.props。另外,getDefaultProps()返回的任何复杂对象将会在实例间共享,而不是每个实例拥有一份拷贝。

3.1.4propTypes

object propTypes

propTypes对象允许验证传入到组件的props。更多关

于propTypes的信息,参考可重用的组件。

3.1.5mixins

array mixins

mixin数组允许使用混合来在多个组件之间共享行为。更多关于混合的信息,参考可重用的组件。

3.1.6statics

object statics

statics对象允许你定义静态的方法,这些静态的方法可以在组件类上调用。例如:

var MyComponent=React.createClass({

statics:{

customMethod:function(foo){

return foo==='bar';

}

},

render:function(){

}

});

MyComponent.customMethod('bar');//true

在这个块儿里面定义的方法都是静态的,意味着你可以在任何组件实例创建之前调用它们,这些方法不能获取组件的props和state。如果你想在静态方法中检查props的值,在调用处把props作为参数传入到静态方法。

3.1.7displayName

string displayName

displayName字符串用于输出调试信息。JSX自动设置该值;参考JSX 深入。

3.2生命周期方法

许多方法在组件生命周期中某个确定的时间点执行。

3.2.1挂载:componentWillMount componentWillMount()

服务器端和客户端都只调用一次,在初始化渲染执行之前立刻调用。如果在这个方法内调用setState,render()将会感知到更新后的state,将会执行仅一次,尽管state改变了。

3.2.2挂载:componentDidMount componentDidMount()

在初始化渲染执行之后立刻调用一次,仅客户端有效(服务器端不会调用)。在生命周期中的这个时间点,组件拥有一个DOM展现,你可以通过this.getDOMNode()来获取相应DOM节点。

如果想和其它JavaScript框架集成,使用setTimeout或

者setInterval来设置定时器,或者发送AJAX请求,可以在该方法中执行这些操作。

注意:

为了兼容v0.9,DOM节点作为最后一个参数传入。你依然可以通过this.getDOMNode()获取DOM节点。

3.2.3更新:componentWillReceiveProps componentWillReceiveProps(object nextProps)

在组件接收到新的props的时候调用。在初始化渲染的时候,该方法不会调用。

用此函数可以作为react在prop传入之后,render()渲染之前更新state的机会。老的props可以通过this.props获取到。在该函数中调用this.setState()将不会引起第二次渲染。componentWillReceiveProps:function(nextProps){

this.setState({

likesIncreasing:nextProps.likeCount>this.props.likeCount

});

}

注意:

对于state,没有相似的方法:componentWillReceiveState。将要传进来的prop可能会引起state改变,反之则不然。如果需要在state 改变的时候执行一些操作,请使用componentWillUpdate。

3.2.4更新:shouldComponentUpdate

boolean shouldComponentUpdate(object nextProps,object nextState)

在接收到新的props或者state,将要渲染之前调用。该方法在初始化渲染的时候不会调用,在使用forceUpdate方法的时候也不会。

如果确定新的props和state不会导致组件更新,则此处应该返回false。

shouldComponentUpdate:function(nextProps,nextState){

return nextProps.id!==this.props.id;

}

如果shouldComponentUpdate返回false,则render()将不会执行,直到下一次state改变。(另外,

componentWillUpdate和componentDidUpdate也不会被调用。)

默认情况下,shouldComponentUpdate总会返回true,在state改变的时候避免细微的bug,但是如果总是小心地把state当做不可变的,在render()中只从props和state读取值,此时你可以覆

盖shouldComponentUpdate方法,实现新老props和state的比对逻辑。

如果性能是个瓶颈,尤其是有几十个甚至上百个组件的时候,使

用shouldComponentUpdate可以提升应用的性能。

3.2.5更新:componentWillUpdate componentWillUpdate(object nextProps,object nextState)

在接收到新的props或者state之前立刻调用。在初始化渲染的时候该方法不会被调用。

使用该方法做一些更新之前的准备工作。

注意:

你不能在刚方法中使用this.setState()。如果需要更新state来响应某个prop的改变,请使用componentWillReceiveProps。

3.2.6更新:componentDidUpdate componentDidUpdate(object prevProps,object prevState)

在组件的更新已经同步到DOM中之后立刻被调用。该方法不会在初始化渲染的时候调用。

使用该方法可以在组件更新之后操作DOM元素。

注意:

为了兼容v0.9,DOM节点会作为最后一个参数传入。如果使用这个方法,你仍然可以使用this.getDOMNode()来访问DOM节点。3.2.7移除:componentWillUnmount componentWillUnmount()

在组件从DOM中移除的时候立刻被调用。

在该方法中执行任何必要的清理,比如无效的定时器,或者清除

在componentDidMount中创建的DOM元素。

4.标签和属性支持

4.1支持的标签

React尝试支持所用常用的元素。如果你需要的元素没有在下面列出来,请提交一个问题(issue)。

4.1.1HTML元素

下列的HTML元素是被支持的:

a abbr address area article aside audio

b base bdi bdo big blockquote body br

button canvas caption cite code col colgroup data datalist dd del details dfn

dialog div dl dt em embed fieldset figcaption figure footer form h1h2h3h4h5

h6head header hr html i iframe img input ins kbd keygen label legend li link

main map mark menu menuitem meta meter nav noscript object ol optgroup option output p param picture pre progress q rp rt ruby s samp script section select

small source span strong style sub summary sup table tbody td textarea tfoot th thead time title tr track u ul var video wbr

4.1.2SVG元素

下列的SVG元素是被支持的:

circle defs ellipse g line linearGradient mask path pattern polygon polyline radialGradient rect stop svg text tspan

你或许对react-art也感兴趣,它是一个为React写的渲染到Canvas、SVG或者VML(IE8)的绘图库。

4.2支持的属性

React支持所有data-*和aria-*属性,也支持下面列出的属性。注意:

所有的属性都是驼峰命名的,class属性和for属性分别改

为className和htmlFor,来符合DOM API规范。

对于支持的事件列表,参考支持的事件。

4.2.1HTML属性

这些标准的属性是被支持的:

accept acceptCharset accessKey action allowFullScreen allowTransparency alt

async autoComplete autoPlay cellPadding cellSpacing charSet checked classID className cols colSpan content contentEditable contextMenu controls coords crossOrigin data dateTime defer dir disabled download draggable encType form formAction formEncType formMethod formNoValidate formTarget frameBorder height hidden href hrefLang htmlFor httpEquiv icon id label lang list loop manifest marginHeight marginWidth max maxLength media mediaGroup method min multiple muted name noValidate open pattern placeholder poster preload radioGroup

readOnly rel required role rows rowSpan sandbox scope scrolling seamless

selected shape size sizes span spellCheck src srcDoc srcSet start step style

tabIndex target title type useMap value width wmode

另外,下面非标准的属性也是被支持的:

?autoCapitalize autoCorrect用于移动端的Safari。

?property用于Open Graph原标签。

?itemProp itemScope itemType用于HTML5microdata。

也有React特有的属性dangerouslySetInnerHTML(更多信息),用于直接插入HTML字符串到组件中。

4.2.2SVG属性

cx cy d dx dy fill fillOpacity fontFamily fontSize fx fy gradientTransform

gradientUnits markerEnd markerMid markerStart offset opacity

patternContentUnits patternUnits points preserveAspectRatio r rx ry

spreadMethod stopColor stopOpacity stroke strokeDasharray strokeLinecap

strokeOpacity strokeWidth textAnchor transform version viewBox x1x2x y1y2y

5.事件系统

5.1虚拟事件对象

事件处理器将会传入虚拟事件对象的实例,一个对浏览器本地事件的跨浏览器封装。它有和浏览器本地事件相同的属性和方法,包

括stopPropagation()和preventDefault(),但是没有浏览器兼容问题。如果因为一些因素,需要底层的浏览器事件对象,只要使

用nativeEvent属性就可以获取到它了。每一个虚拟事件对象都有下列的属性:

boolean bubbles

boolean cancelable

DOMEventTarget currentTarget

boolean defaultPrevented

number eventPhase

boolean isTrusted

DOMEvent nativeEvent

void preventDefault()

void stopPropagation()

DOMEventTarget target

number timeStamp

string type

注意:

对于v0.12,在事件处理函数中返回false将不会阻止事件冒泡。取而代之的是在合适的应用场景下,手动调用e.stopPropagation()或

者e.preventDefault()。

5.2支持的事件

React标准化了事件对象,因此在不同的浏览器中都会有相同的属性。如下的事件处理器在事件冒泡阶段触发。要在捕获阶段触发某个事件处理器,在事件名字后面追加Capture字符串;例如,使

用onClickCapture而不是onClick来在捕获阶段处理点击事件。

5.2.1剪贴板事件

事件名:

onCopy onCut onPaste

属性:

DOMDataTransfer clipboardData

5.2.2键盘事件:

事件名:

onKeyDown onKeyPress onKeyUp

Android开发规范参考文档

Android开发参考文档 一、Android编码规范 1. java代码中不出现中文,最多注释中可以出现中文.xml代码中注释 2. 成员变量,局部变量、静态成员变量命名、常量(宏)命名 1). 成员变量: activity中的成员变量以m开头,后面的单词首字母大写(如Button mBackButton; String mName);实体类和自定义View的成员变量可以不以m开头(如ImageView imageView,String name), 2). 局部变量命名:只能包含字母,组合变量单词首字母出第一个外,都为大写,其他字母都为小写 3). 常量(宏)命名: 只能包含字母和_,字母全部大写,单词之间用_隔开UMENG_APP_KEY 3. Application命名 项目名称+App,如SlimApp,里面可以存放全局变量,但是杜绝存放过大的实体对象4. activity和其中的view变量命名 activity命名模式为:逻辑名称+Activity view命名模式为:逻辑名称+View 建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view 5. layout及其id命名规则 layout命名模式:activity_逻辑名称,或者把对应的activity的名字用“_”把单词分开。

命名模式为:view缩写_模块名称_view的逻辑名称, 用单词首字母进行缩写 view的缩写详情如下 LayoutView:lv RelativeView:rv TextView:tv ImageView:iv ImageButton:ib Button:btn 6. strings.xml中的 1). id命名模式: activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称,strings.xml中,使用activity名称注释,将文件内容区分开来 2). strings.xml中使用%1$s实现字符串的通配,合起来写 7. drawable中的图片命名 命名模式:activity名称_逻辑名称/common_逻辑名称/ic_逻辑名称 (逻辑名称: 这是一个什么样的图片,展示功能是什么) 8. styles.xml 将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中; 9. 使用layer-list和selector,主要是View onCclick onTouch等事件界面反映

Android中文文档安装SDK资料

安装SDK 本页内容介绍如何安装Android SDK和设置你的开发环境。如果你还没有下载SDK,你可以点下面的连接进行开始下载,然后阅读后续文档学习如何安装,并使用此SDK来创建Android应用程序。 下载SDK 升级? 如果你已经用更早的版本开发过程,可以跳过本页,并阅读升级SDK文档. 系统和软件需求 用Android sdk的代码和工具开发Android应用程序,你需要下面列出来的合适开发电脑和开发环境. 所需操作系统: Windows XP 或Vista Mac OS X 10.4.8 或更高版本(仅支持x86) Linux ( Linux Ubuntu Dapper Drake 版本已测试) 所需开发环境: Eclipse IDE Eclipse 3.3 (Europa), 3.4 (Ganymede) + Eclipse JD T 插件(大多数的Eclipse IDE 包包含) + WST (可选,但Android编辑器的特性需要,大多数Eclipse IDEmost Eclipse IDE packages )包中包含 JDK 5 或JDK 6 (只有JRE是不够的) Android Development Tools 插件(可选) Not compatible with Gnu Compiler f or Java (gcj) 其他开发环境或IDE JDK 5 或JDK 6 (仅有JRE不够) Apache Ant 1.6.5 或更高版本(Linux 和Mac环境下), 1.7 或更高版本(Windows环境下) Java的Gnu Compiler不一致(gcj) 注: 如果你的电脑上已经安装了jdk,请确定它是上面所列的版本号。另外需要注意有些linux版本可能包含有jdk 1.4 或者java 的gnu编译器,Adroid开发是不支持在这两种版本 安装SDK 下载完SDK后,把.zip文件解压到你电脑上合适位置默认情况下, SDK文件被解压到 android_sdk___文件夹. 这个文件夹包含tools/, samples/等. 请注意系统里SDK解压后的文件夹的名字和位置—当你安装Android插件和使用SDK工具时,你将需要引用这个文件夹你可以添加SDK tools 的文件夹路径为你的路径. 如上所述, tools/文件夹位于SDK文件夹. Linux环境下,修改~/.bash_prof ile或者~/.bashrc文件. 寻找路径环境变量设置的那一行添tools/为路径环境变量.如果你没有找到这一行,你需要添加一行: export PA TH=${PA TH}:/tools Mac环境下,在你的home文件夹里面查找.bash_prof ile,然后和linux一样处理。如果以前没有.bash_prof ile文件夹可以创建它。 Windows 环境下, 右击我的电脑( My Computer), 并选择属性(Properties). 在标签页高级(Advanced), 点击环境变量 ( Environment Variables),当对话出现, 在系统变量(System Variables) 栏目里双击路径( Path ) .并添加tools/ 文件夹的完整路径. 添加tools 到你的路径使你运行Android Debug Bridge (adb)和其他命令行tools ,不需要为工具路径添加完整路径.需要说明的是,如果你升级你的SDK路径不同,你需要记得更新你的路径(PA TH )到新的位置. 安装Eclipse插件(ADT) 如果你要使用Eclipse IDE作为开发Android应用的环境,你可以安装支持Android工程和工具的通用插件Android Development Tools (ADT). AD T插件包含强大的扩张,使得创建,运行和调试Android 更快速,更简单。 如果你不使用Eclipse IDE,就不必下载和安装AD T插件 下载和安装ADT插件,请按照你们各自Eclipse版本步骤安装。

Android开发入门文档 v1.1

RK28平台技术文档 Android 开发入门 部 门: 内核组 版 本: V1.1 作 者: 陈美友 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 日 期: 2008-12-1 关键字 Linux 、Android 、Native C/C++、编译、下载 概 述 本文档主要讲述了Android 的下载、编译,以 及本地C/C++程序的开发、Android 应用程序 的开发等… 本文档适用了Android 开发的初学者

目录 下载ANDROID源码 (3) 编译ANDROID源码: (4) 编译ANDROID中的LINUX内核: (5) 编译NATIVE C/C++程序 (6) 运行NATIVE C/C++应用程序 (7) 在WINDOWS XP操作系统上构建ANDROID应用程序开发环境 (8) 编写ANDROID应用程序 (9) ANDROID SDK文件夹结构分析 (9) ANDROID源代码结构 (10) ANDROID应用程序生成 (10)

注: 如果你要创建Android的SDK,那么你必须安装JDK5,不要安装JDK6 $sudo apt-get install sun-java5-jdk 如果你使用apt-get下载安装程序时,发现某些安装包无法下载的情况, 那么你可以从网络上其它地方用其它的工具下载安装包,然后进行安装。我 通常是通过Windows上的迅雷下载,然后通过VMware中的文件共享传到Linux系统中。 我的电脑: 主系统:Windows XP 模拟器安装在Windows XP上 VMware中安装Linux:Ubuntu8.10 Android源码存放路径:~/mydroid 下载Android源码 在这里面以Ubuntu(x86)操作系统为例,说明下载Android的步骤: 下载必要工具: 下载GIT工具: $ sudo apt-get install git-core gnupg 下载JDK6: $ sudo apt-get install sun-java6-jdk 下载下列工具包:flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev 下载Valgrind工具(可选): $ sudo apt-get install valgrind 安装Repo工具: 创建目录存放Repo: $ cd ~ $ mkdir bin $ export PATH=~/bin:$PATH 下载Repo: $ curl https://www.doczj.com/doc/0a5654173.html,/repo >~/bin/repo

Android—API中文文档

Android2.2——API中文文档 LLGYZB@https://www.doczj.com/doc/0a5654173.html, 目录: (1)—— TextView (2)—— EditText (3)—— AccessibilityService (4)—— Manifest (5)—— View (6)—— ImageView (7)—— ImageButton (8)—— QuickContactBadge (9)—— ZoomButton (10)—— CheckBox (11)—— RadioButton (12)—— Button (13)—— ToggleButton (14)—— ViewStub (15)——GridView 一、TextView 1、结构 https://www.doczj.com/doc/0a5654173.html,ng.Object ?android.view.View ?android.widget.TextView 2、已知直接子类: Button, CheckedTextView, Chronometer, DigitalClock, EditText 3、已知间接子类: AutoCompleteTextView, CheckBox, CompoundButton, ExtractEditText, MultiAutoCompleteTextView, RadioButton, ToggleButton

二、EditText 1、结构 https://www.doczj.com/doc/0a5654173.html,ng.Object ? android.view.View ? android.widget.TextView ? android.widget.EditText 已知直接子类: AutoCompleteTextView, ExtractEditText 已知间接子类: MultiAutoCompleteTextView 2、xml 属性

Android开发之- API包类最全面说明

android-->包含应用平台和在定义应用程序所用到android系统功能的应用权限的资料文件类, android.accessibilityservice-->这个包中的类用于为无障碍服务的开发提供替代或增强的反馈给用户 android.accounts--> android.animation-->这些类提供动画系统的功能特性,它允许使用任何类型的动画对象属性,int,float和16进制颜色值都是默认支持的,也可以通过自定义一个动画让告诉应用按你的设置去运行 android.app-->封装好的Andorid全部应用程序模型类 android.app.admin-->提供系统级的设备管理功能,允许您创建安全感知的应用程序用于android系统企业级别的设置,如可以让你的应用程序也能执行屏幕锁定,屏幕亮度调节、出厂设置等功能 android.app.backup-->此包下的类包含了备份和修复应用程度功能的,如果用户清除设备上的数据或升级到一个新的系统,当应用程序在重新安装时可通过已启用的备份用于修复用户之前的数据 android.appwidget-->此包下的类包含在创建一个应用小部件时所必需要组件,用户可将它嵌入在其他应用程序(如主屏幕),无需启动一个新的活动就可快速访问自身应用程序的数据和服务, android.bluetooth-->此包下的类提供手机蓝牙管理功能,例如搜索设备,连接设备,管理设备之间的数据的传输, android.content-->设备上的数据访问和发布。 android.content.pm-->此包下的类提供访问一个应用包的相应信息,信息内容包括:活动,权限,服务,应用签名,提供者, android.content.res-->此包下的类用于访问应用程序的资源,例如:原文件,颜色,图片,多媒体等,和一些可影响设备运行的重要配置的详细信息 android.database-->此包下类的用于探索通过内容提供者返回的数据 android.database.sqlite-->此包下类的包含SQLITE数据库管理类,用于一个应用程序去管理的它所拥有的私有的数据库 android.drm-->此包下的用于管理DRM系统机制和控件DRM机制的插件的功能,DRM解释:DRM提供一套机制对用户使用手机上的媒体内容(如ringtong, mp3等)进行限制,如限制拷贝给第三方,限制使用次数或时限等,从而保护内容提供商的权利, android.gesture-->此包下的类用于创建,识别,加载,保存一个手势 android.graphics-->此包下的类提供一些低级的绘图功具,例如:画布,颜色过滤,顶点坐标,和长方形以便于发开者的绘图直接处理在设备屏幕上, android.graphics.drawable.shapes-->此包下的类用于几何绘图 android.hardware-->提供支持硬件功能的类,例如:照像机和其它传感器 android.hardware.input--> https://www.doczj.com/doc/0a5654173.html,b-->提供支持android系统设备的USB接口与外围设备的相连 android.inputmethodservice-->输入法的基类 android.location-->包括的类用于定义android地理位置和与此关系的服务 android.media-->提供管理各种各样音频和视频接口的类 android.media.audiofx-->提供管理多媒体框架中实现的音频效果的 android.media.effect-->提供允许你运用各种图像和视频的视觉效果的类 android.mtp-->提供的API让你直接连接照像机和其它设备与之互动,

Android 中文API —— ViewSwitcher===

Android 中文API —— ViewSwitcher 前言 本章内容是android.widget.ViewSwitcher,版本为Android 2.3 r1,翻译来自"ivanlee",再次感谢"ivanlee" !期待你一起参与Android中文API的翻译,联系我over140@https://www.doczj.com/doc/0a5654173.html,。 声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.doczj.com/doc/0a5654173.html,/ Android中文翻译组:https://www.doczj.com/doc/0a5654173.html,/project/view/404/ 正文 一、结构 public class ViewSwitcher extends ViewAnimator https://www.doczj.com/doc/0a5654173.html,ng.Object android.view.View android.view.ViewGroup android.widget.FrameLayout android.widget.ViewAnimator android.widget.ViewSwitcher 已知直接子类 ImageSwitcher, TextSwitcher 二、概述 在两个视图间转换时显示动画,有一个可以创建这些视图的工厂类。你可以用工厂来创建这些视图,也可以自己创建。一个ViewSwitcher只允许包含两个子视图,且一次仅能显示一个。

(译者注:与ViewFlipper类相似,但该类不常用,常用其两个子类ImageSwitcher:转换图片时增加动画效果; TextSwitcher:转换文字时增加动画效果; 其实例见apidemos中ImageSwitcher实例和TextSwitcher实例) 三、内部类 interface ViewSwitcher.ViewFactory 在一个ViewSwitcher里创建视图 四、构造函数 public ViewSwitcher (Context context) 构造一个新的空的视图转换器(ViewSwitcher)。 参数 context 应用环境(译者注:应用程序上下文) public ViewSwitcher (Context context, AttributeSet attrs) 构造一个指定上下文、属性集合的空的视图转换器(ViewSwitcher)。 参数 context 应用环境(译者注:应用程序上下文) attrs 属性集合 五、公共方法 public void addView(View child, int index, https://www.doczj.com/doc/0a5654173.html,youtParams params) 添加一个指定布局参数的子视图 参数 child 添加的子视图 index 添加的子视图的索引 params 子视图的布局参数 异常 IllegalStateException 如果切换器中已经包含了两个视图时。 public View getNextView ()

Android开发说明文档

Android开发说明文档 一、开发环境的搭建过程: 第一步安装JDK,并在环境变量中配置相应的参数。 第二步安装开发工具,常用的开发工具有两种,一种是eclipse开发工具开发时需要导入ADT插件,一种是motodevstudio开发时不需要任何插 件。 第三步安装sdk(android开发环境),并在环境变量中配置相应的参数。 第四步测试环境是否搭建好,以此用命令javac、android –h进行测试,如果命令窗口中出现相应的说明,则证明开发环境搭建成功。 二、实现手机拍照功能: 1.UI界面设计 UI界面总共有两个,一个是初始化界面,一个是拍照界面。 初始化界面设计,如下图所示; 拍照界面设计,在此界面中,设计了两个按钮,一个是拍照按钮,一个是对焦按钮,拍照按钮用于进行对区域范围景色的拍摄,对焦按钮 是对所在视野区域焦距进行调节,拍摄窗口是横向显示方式,拍摄暂停 画面是花色的;

2.功能实现 当点击拍照按钮进入拍照界面,拍照界面显示当前的视野,然后点击对焦按钮进行焦距调整,然后点击拍照按钮进行拍照,当出现花色时证明拍照完成,拍照完成的图片保存在sd卡的根目录下。 三、实现百度地图获取地址信息: 1.获取百度api的key 在用百度账号进入,设置自己的key值,将key值添加到自己程序里的publicstaticfinal String strKey="iDneBU6NBrm9wyLxdOODPTM5";这段代码中。 2.UI界面设计 在此界面中用LinearLayout布局管理器,在此界面中设置六个编辑框用于获取当前地址所在信息,具体如下图所示。

Android_2.2_r1_API中文文档——ImageView.ScaleType

Android 2.2 r1 API中文文档—— ImageView.ScaleType 小易 https://www.doczj.com/doc/0a5654173.html,/xjtuyi 2010-11-3 结构 继承关系 public static final enum ImageView.ScaleType extends Enum> https://www.doczj.com/doc/0a5654173.html,ng.Object ?https://www.doczj.com/doc/0a5654173.html,ng.Enum> ?android.widget.ImageView.ScaleType 类概述: 缩放图片的边界用于视图边界的选取设定。 公共方法 static ImageView.ScaleType valueOf(String name) final static ScaleType[] values() 枚举值

public static final ImageView.ScaleType CENTER 图片位于视图中间,但不执行缩放比例。在XML中,使用语法: android:scaleType="center" public static final ImageView.ScaleType CENTER_CROP 按比例统一缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或大于相应的视图维度。然后图片居中于视图。在XML中,使用语法: android:scaleType="centerCrop" public static final ImageView.ScaleType CENTER_INSIDE 按比例统一缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或小于相应的视图维度。然后图片居中于视图。在XML中,使用语法: android:scaleType="centerInside" public static final ImageView.ScaleType FIT_CENTER 缩放图片使用CENTER。在XML中,使用语法:android:scaleType="fitCenter" public static final ImageView.ScaleType FIT_END 缩放图片使用END。在XML中,使用语法:android:scaleType="fitEnd" public static final ImageView.ScaleType FIT_START 缩放图片使用START。在XML中,使用语法:android:scaleType="fitStart" public static final ImageView.ScaleType FIT_XY 缩放图片使用FILL. 。在XML中,使用语法:android:scaleType="fitXY" public static final ImageView.ScaleType MATRIX 当绘制时使用图片矩阵缩放。图片矩阵可以使用setImageMatrix(Matrix)进行设定。在XML 中,使用语法:android:scaleType="matrix" 公共方法 public static ImageView.ScaleType valueOf (String name)

最全的AndroidOpenGL开发文档

Android 3D 游戏开发教程 (Open Graphics Library) 目前最全的Android OpenGL文档 这几篇Android 3D游戏开发的文章原文出自一位德国人Martin 在https://www.doczj.com/doc/0a5654173.html,写的文章,由lixinso翻译为中文。 拷贝于博客:https://www.doczj.com/doc/0a5654173.html,/lixinso/archive/2010/01/30/5272927.aspx 第一部分首先介绍OpenGL相关的术语,并引导你开始3D开发的第一步。 这个关于3D游戏的系列的叫做V ortex . 这个教程主要focus在3D编程上,其他的东西比如菜单和程序生命周期虽然是代码的一部分,但是在这里不会被提到。 首先开始介绍OpenGL的术语。 顶点V ertex 顶点是3D空间中的一个点,也是许多对象的基础元素。在OpenGL中你可以生命少至二维坐标(X,Y),多至四维(X,Y,Z,W). w轴是可选的,默认的值是1.0. Z轴也是可选的,默认为0. 在这个系列中,我们将要用到3个主要的坐标X,Y,Z,因为W一般都是被用来作为占位符。vertex的复数是vertices(这对非英语母语的人来说比较重要,因为这容易产生歧义)。所有的对象都是用vertices作为它们的点,因为点就是vertex。 三角形Triangle 三角形需要三个点才能创建。因此在OpenGL中,我们使用3个顶点来创建一个三角形。多边形Polygon 多边形是至少有3个连接着的点组成的一个对象。三角形也是一个多边形。 图元Primitives 一个Primitive是一个三维的对象,使用三角形或者多边形创建。形象的说,一个有50000个顶点的非常精细的模型是一个Primitive,同样一个只有500个顶点的低模也叫做一个Primitive。 现在我们可以开始变成了。 创建一个工程交V ortex,activity也是这个名字。我们的工程应该大概是这个样子的:package com.droidnova.android.games.vortex; import android.app.Activity; import android.os.Bundle; public class V ortex extends Activity { private static final String LOG_TAG = V ortex.class.getSimpleName(); private V ortexV iew _vortexV iew; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); _vortexV iew = new V ortexView(this); setContentView(_vortexView);

Android开发技术文档

Android 开发最佳实践 从Futurice公司Android开发者中学到的经验。遵循以下准则,避免重复发明轮子。若您对开发iOS或Windows Phone 有兴趣,请看iOS Good Practices和Windows client Good Practices这两篇文章。 摘要 ?使用 Gradle 和它推荐的工程结构 ?把密码和敏感数据放在gradle.properties ?不要自己写 HTTP 客户端,使用Volley或OkHttp库 ?使用Jackson库解析JSON数据 ?避免使用Guava同时使用一些类库来避免65k method limit(一个Android程序中最多能执行65536个方法) ?使用 Fragments来呈现UI视图 ?使用 Activities 只是为了管理 Fragments ?Layout 布局是 XMLs代码,组织好它们 ?在layoutout XMLs布局时,使用styles文件来避免使用重复的属性 ?使用多个style文件来避免单一的一个大style文件 ?保持你的colors.xml 简短DRY(不要重复自己),只是定义调色板 ?总是使用dimens.xml DRY(不要重复自己),定义通用常数 ?不要做一个深层次的ViewGroup ?在使用WebViews时避免在客户端做处理,当心内存泄露 ?使用Robolectric单元测试,Robotium 做UI测试 ?使用Genymotion 作为你的模拟器 ?总是使用ProGuard 和 DexGuard混淆来项目 Android SDK 将你的Android SDK放在你的home目录或其他应用程序无关的位置。当安装有些包含SDK的IDE的时候,可能会将SDK放在IDE同一目录下,当你需要升级(或重新安装)IDE或更换的IDE时,会非常麻烦。此外,若果你的IDE 是在普通用户,不是在root下运行,还要避免吧SDK放到一下需要sudo权限的系统级别目录下。 构建系统

Android 2.3 r1 API中文文档——BluetoothServerSocket(Android Club SYSU)

BluetoothServerSocket 译者署名:Android Club SYSU 译者链接:https://www.doczj.com/doc/0a5654173.html, 版本:Android 2.3 r1 结构 继承关系 public final class BluetoothServerSocket extends Object implements Closeable https://www.doczj.com/doc/0a5654173.html,ng.Object android.bluetooth.BluetoothServerSocket 类概述 一个蓝牙监听端口。 蓝牙端口监听接口和TCP端口类似:Socket和ServerSocket类。在服务器端,使用BluetoothServerSocket类来创建一个监听服务端口。当一个连接被BluetoothServerSocket所接受,它会返回一个新的BluetoothSocket来管理该连接。在客户端,使用一个单独的BluetoothSocket类去初始化一个外接连接和管理该连接。 最通常使用的蓝牙端口是RFCOMM,它是被Android API支持的类型。RFCOMM是一个面向连接,通过蓝牙模块进行的数据流传输方式,它也被称为串行端口规范(Serial Port Profile,SPP)。 为了创建一个对准备好的新来的连接去进行监听BluetoothServerSocket类,使用BluetoothAdapter.listenUsingRfcommWithServiceRecord()方法。然后调用accept()方法去监听该链接的请求。在连接建立之前,该调用会被阻断,也就是说,它将返回一个BluetoothSocket 类去管理该连接。每次获得该类之后,如果不再需要接受连接,最好调用在BluetoothServerSocket类下的close()方法。关闭BluetoothServerSocket类不会关闭这个已经返回的BluetoothSocket类。 BluetoothSocket类线程安全。特别的,close()方法总会马上放弃外界操作并关闭服务器端口。 注意:需要BLUETOOTH权限。 参见 BluetoothSocket 公共方法 Block until a connection is established, with timeout. 阻塞直到一个带超时的连接已经建立。 在一个成功建立的连接上返回一个已连接的BluetoothSocket类。 每当该调用返回的时候,它可以在此调用去接收以后新来的连接。 close()方法可以用来放弃从另一线程来的调用。 参数 timeout (译者注:阻塞超时时间) 返回值

Android音乐播放器开发文档

多媒体综合课程设计报告 课题名称:ANDROID音乐播放器 姓名:杨超 学号:2823102012 2011年10月31日

目录 1需求分析................................... 错误!未定义书签。 1.1问题定义..................................................................................................... 错误!未定义书签。 1.2 可行性研究........................................................................................... 错误!未定义书签。 1.3 需求分析............................................................................................... 错误!未定义书签。 1.4总体设计 .................................................................................................... 错误!未定义书签。 2. 概要设计................................. 错误!未定义书签。 2.1引言 (6) 2.1.1................................................................................................................................ 编写目的6 2.1.2....................................................................................................................................... 背景7 2.1. 3................................................................................................................................ 术语定义7 2.1.4................................................................................................................................ 参考资料7 2.2总体设计 (7) 2.2.1 ....................................................................................................................... 总体技术框架7 2.2.2 ................................................................................................................ 需求与设计对应表7 2.3功能设计................................. 错误!未定义书签。 2.3.1................................................................................................................................ 音乐播放错误!未定义书签。 2.3.2................................................................................................................................ 后台运行错误!未定义书签。 2.3.3...................................................................................................................... 读取SD卡……错误!未定义书签。 2.3.4.......................................................................................................................... 歌词同步……错误!未定义书签。 2.3.5.......................................................................................................................... 手势换歌……错误!未定义书签。 2.4接口设计 (8) 2.5部署与组件设计 (8) 2.5.1................................................................................................................................ 部署模型8

Android第三方SDK组件开发文档

APKPLUG第三方SDK组件开发原理说明文档 目录 一,概要说明 (2) 二,基本原理 (2) 三,使用步骤 (4) 1. 主应用中导入相关库文件并初始化 (4) 2,配置相关权限 (4) 3,调用组件 (4) 四,如何自定义组件 (5) 1. 组件源码工程 (5) 2. 修改组件源码并上传托管服务 (6) 3. 修改ApkplugPlugXXX.jar中的appid (6) 五,总结 (6) 六,组件征集 (7)

一,概要说明 使用APKPLUG 组件的目的主要是为了能快速的接入目前市场上存在的第三方SDK 和开发库,并且也组件的方式动态加载。 使用APKPLUG 组件开发应用有以下几点好处: 1. 可以快速接入,我们通过对第三方SDK 进行预处理,使开发者不必了解SDK 具体接 口的情况下快速接入。 2. 可极大减小应用体积,APKPLUG 组件在发布时不必打包到应用中而是在需要是动态从服务器下载。 3. 方便后期维护,APKPLUG 组件与主应用工程是分离的,开发者不必将SDK 的资源 打包到主应用中,以免引起不必要的干扰。 二,基本原理 APKPLUG 组件由三部分组成 1. 组件工程 第三方SDK 具体实现插件,开发者可以直接使用也可以根据不同的需求定制插件。具体定制方法见下文 2. 主应用 即开发者的实际项目 3. 对接Jar 包ApkplugXXX.jar 该包一般在10K 大小左右,主要提供一下几个功能: 1. 组件检测,如组件不存在便从服务器上下载 2. 组件更新下载 【使用APKPLUG 插件托管云服务SDK 】 3. 主应用与组件调用接口服务封装 每一类组件可能有不同的服务接口,例如ShareSDK 评论组件 public View getQuickCommentBar(…) public View getTopicTitle (…) 4. APKPLUG 组件工作结构图: APKPLUG 框架 组件 ApkplugXXX.jar 主应用 托管云 1 2 3

Android开发文档

Android Dev Doc Android 开发多使用内部类使用方便且效率高 UI方面的知识 一、在编写layout的xml文件时,一定要仔细!如果在报错的时候,如何解决? 解决:将xml仔细检查并保存后再运行。 二、在运行程序时,还未运行onCreate()方法之前就报错(MyAndroid(Project))! 原因:在用eclipse 新建的项目的AndroidManifest.xml 文件中的application节点中android:lable写了。去掉后就无错。(待验证!) 三、onCreateContextMenu -> 创建长按菜单键显示的菜单!处理菜单选择事件方法-> onContextItemSelected 四、在对数据库操作时,一定要记住open.. 五、Fragments 类似于Activity 生命周期有点类似。。。一个Activity中可以有很多个 Fragments,一个Fragments可以被多个Activity使用,要实现Fragments也必须去跟Activity 一样去集成父类。 六、两种方式将Layout中的XML转换为View https://www.doczj.com/doc/0a5654173.html,youtInflater inflater = (强转)getSystemService(https://www.doczj.com/doc/0a5654173.html,YOUT_INFLATER_SERVICE) inflater.inflater(layoutId,null); https://www.doczj.com/doc/0a5654173.html,youtInflater inflater = LayoutInflater.from(this); final View textEntryView = inflater.inflate(https://www.doczj.com/doc/0a5654173.html,yout.alert_dialog_text_entry, null); 七、Dialog的机制:当Activity中调用showDialog(int id)时会去回调onCreateDialog() 回调 执行完毕后执行onPrepareDialog()。 八、利用线程来实现ProgressBar 1.新建一个匿名类实现Runable接口,run方法里面来for循环progressBar的max value 2.在for内利用android.os.Handler类的实例的post方法来对progressBar实例的操作 (其中post的参数又是一个Runable的实现类-利用匿名类来实现run方法,在方法 内对progressBar的实例操作)。->注意:progressbar 的max越大越能看出效果。 九、得到NotificationManager 以及Notification的使用 1.在Activity中nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 2.new Notification(显示图片的ID,显示的文本,Notification显示的时间) 3.Notification的使用步骤: A.所有的Notification都是由NotificationManager来管理的,因此必须得到 NotificationManager的实例 B.构造一个Notification(注意setLatestEventInfo这个方法是用来:1:当展开 Notification时如何呈现Notification 2:当用户单击时如何处理Notification) C.利用NotificationManager的实例来启动Notification 4. 十、D

android中文api合集

Android 中文API合集(3)(83篇)(chm格式) 前言 Android中文翻译组, Android中文chm , Android中文API chm , android 中文api Android中文翻译组迎来了第三个chm格式合集,收集整理83篇已发表译文制作成合集,参 与成员有0_1、桂仁、cofice、唐明、loveshirui、madgoat、颖哥儿、思考的狼、德罗德、henly.zhang、wallace2010、Tina、首当其冲、jiahuibin、CN七号、pengyouhong 、麦子、我是谁、一昕、六必治、Android Club SYSU、cnmahj、农民伯伯。欢迎指正!同时也期待你的加入,联系我们:QQ:36408253,Gtalk:over140@https://www.doczj.com/doc/0a5654173.html,。 声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.doczj.com/doc/0a5654173.html,/ Android中文翻译组: https://www.doczj.com/doc/0a5654173.html,/over140/archive/2010/10/26/1861234.html 正文 一、截图

二、章节 命名空间完成章节数(83) android3 android.accessibilityservice1

android.bluetooth8 android.view3 android.view.inputmethod1 android.widget67 与上次合集相比新增的章节: Android API 中文(51)—— ZoomButtonsController Android API 中文(52)—— ZoomButtonsController.OnZoomListener Android API 中文(53)—— BaseAdapter Android API 中文(54)—— Filterable Android API 中文(55)—— ListAdapter Android SDK 中文(56)—— ViewFlipper Android 2.3 r1 中文API (57)—— ScaleGestureDetector android 2.3 r1 中文api (58) —— TabHost android中文api (59) —— TabHost.TabSpec Android中文API (60) —— DatePicker.OnDateChangedListener Android 中文API (61)—— ViewSwitcher android 中文api (62) —— ViewSwitcher.ViewFactory android 中文api (63)—— SimpleAdapter.ViewBinder android 中文api (64)—— Scroller

相关主题
文本预览
相关文档 最新文档