请选择 进入手机版 | 继续访问电脑版

雨林木风

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 31|回复: 0

Android平台指南

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
31551
发表于 2021-1-13 13:23:56 | 显示全部楼层 |阅读模式
  这个指南显示若何装配SDK境遇以便可能陈设Cordova App正在Android开发上,以及若何采选运用以Android为中央号令行用具正在你的开采做事流中。 不管你是运用以平台为中央的shell用具依然跨平台的Cordova号令行你都需求装配Android SDK。要对照两种开采旅途,请参睹概述。要获取CLI的周密先容请参睹Cordova CLI 参考.
  行为日常法规,当Android版本正在Google分散面板占比跌破5%Cordova就不会助助了。
  当正在Windows上装配的时辰需求凭据JDK旅途成立JAVA_HOME境遇变量(参睹成立境遇变量)
  正在装配完Android SDK后,你需求装配任何你欲望的目的API级另外SDK包。提议你装配cordova-android(参睹上面)助助的最上等另外SDK包。
  为了使性能平常运用Cordova的CLI用具需求成立少许境遇变量。CLI会测试为你成立这些变量,但正在某些情形下你需求手动成立。下面这些变量需求更新:
  正在Mac或者Linux上面,你可能运用文本编辑器来创修或者窜改文献~/.bash_profile。为了成立一个境遇变量,增添一行,运用export像下面如此(用你当地装配旅途取代旅途):
  为了更新PATH,增添一行相像下面如此(旅途更换为你当地的Android SDK装配旅途):
  这些办法大概会因你装配的Windows版本而差异。正在更改后,合上并从新掀开号令行提示符窗口,来看看他们的响应
  增添条款到PATH合连的地方。 比方(用你当地的Android SDK装配旅途取代旅途):
  假使你念运转你的Cordova运用正在Android模仿器上面,最先你要创修一个Android虚拟开发(AVD)。查看Android文档束缚AVD和装备模仿器和成立硬件加快的阐明。
  一朝你的AVD装备确切,正在Cordova项目内部运转下面号令你该当可能可能看到他们:
  通过成立确定的Cordova映现的Gradle属性装备Gradle构修是大概的。下面的属性是可能被成立的:
  后面两种计划都涉及蕴涵了格外的文献正在你的平台文献夹中。一样咱们不勉励你编辑这些文献夹中的实质,由于这些蜕化很容易损失被重写。取代,这两个文献该当从另一个地方复制到这个文献夹,行为构修号令的一部门,通过运用before_build钩子.
  请防备:当更新android-versionCode属性时,从构修的APK递增版本编码是不明智的。取代的,你该当基于config.xml文献里android-versionCode属性来递增编码。这是由于cdvBuildMultipleApks属性导致版本编码正在构修的apk中被乘与10,于是运用这个值将会导致下一个版本编码是原始的一百倍,等等。
  这些参数可能通过上面的Cordova CLIbuild或者run号令来指定号令行参数。
  或者,你可能正在一样的号令中运用--buildConfig参数传达构修装备文献(build.json),并正在个中指定他们。这里有个样例装备文献:
  这里同时也助助,号令行参数和build.json参数羼杂。号令行中的参数优先。这是极度有效的正在号令行中输入暗码。
  为了获取于AndroidSDK打包正在一道调试用具的周密音讯, 可能看Android调试开采者文档。 其余, Android调试web运用步调开采者文档供应了你的运用步调员运转正在Webview中这部门调试的先容。
  Plugin开采者欲望编辑原生代码正在IED中该当是运用--link象征,当他们通过cordova plugin add增添插件到项目。这会链接文献,以便正在platforms文献夹中的插件文献蜕化会映照到插件源文献夹(反之亦然)。
  cordova-android蕴涵许众剧本,可能让你以不完整的Cordova CLI运用平台。这种开采旅途给开采者很大采选正在特定的境遇而不是跨平台的cordova CLI。比方,你需求一个shell用具用来不熟自界说的Cordova WebView和当地组件一道。正在运用这个开采旅途之前,你任然需求装备Android SDK境遇,如央求和助助情形上面描摹的。
  对待下面每一个协商的剧本, 参考Cordova CLI参考手册获取更众合于参数和运用的音讯。对待每一个剧本有一个于CLI号令对应的名字。例如cordova-android/bin/create对应于cordova create。
  创修的项目将会蕴涵一个叫做cordova目次,正在这里有针对特定项主意Cordova号令剧本(例如run,build等等)。其余,这个项主意组织将差异于一般的Cordova项目。值得防备的/被移到/assets/www。
  原生的Android运用一样由一系列行动构成,用于与用户交互。行动可能被以为一个稀少的屏幕,构成了一个运用步调。正在运用中差异的义务一样具有本人的行动。每个行动都有本人的人命周期,行为行动的进入和脱节用户开发前景庇护。
  对照起来,Android平台的Cordova运用运转正在一个嵌入稀少Android行动中的Webview中。行动的人命周期通过文档变乱触发暴漏给你的运用步调,变乱不保障与Android的人命周期对齐,但可能供应留存和克复形态的诱导目的。这些变乱大致与Android回调对应如下:
  大大都其他Cordova平台有相像的人命周期观点,当相像的手脚发作正在用户开发上的时辰,该当触发同样的变乱。然而,Android平台会有少许独有的变乱会触发,这归功于原生涯动周期。
  正在Android开发中,操作编制可能采选正在后台杀死行动来开释资源,假使暂时开发运转步调的内存过低。不幸的是,当助助你的运用步调的行动被杀死,糊口正在Webview中的运用步调也会被消灭。这种情形任何运用步调庇护的形态都市损失。当用户从新导航到运用步调,行动和Webview将会由操作编制从新创修,然则正在你的Cordova运用中形态不会自愿克复。因为这个源由,你的运用步调领会人命周期被触发并支持任何确保用户正在脱节运用步调用户上下文不损失的形态,是必需的。
  你的运用步调是很容易被操作编制消灭的,当它脱节用户视野的时辰,这里有种紧要情形会发作。第一种是最彰彰的情形用户按home键或者切换到其余一个运用步调。
  然而,这里有第二种情形(加倍微妙),一个插件被援用。如上所述,Cordova运用一样被节制正在一个蕴涵Webview的行动中。这里有少许其他的行动的实例会被插件创修而且则将Cordova行动放入布景。这些其他行动一样是为了施行特定的义务,通过运用装配正在用户开发上的原生运用。比方,Apache camera插件启动任何一个原生装配正在开发上的camera行动来获取照片。通过这种格式反复应用装配的camera运用,让用户测试获取照片运用起来更像原生运用。不幸的是,当原生的行动将你的运用放入布景,会给操作编制一次kill掉他的机遇。
  为了更显露的通晓第二种情形,咱们将走过一个运用camera插件的例子。设念一下你有一个运用步调需求获取用户头像材料。当一概都遵从筹划,运用中的变乱流该当是如此子的:
  然而,假使开发内存过低变乱流会被打断。假使行动被操作编制杀死掉,上面的变乱流序列会被下面取代:
  正在这个实例内部,操作编制正在布景中杀掉了运用步调而且运用步调不会行为人命周期的一部门来庇护他的形态。当用户返回运用,Webview被从新创修而且运用重新开头重启(让用户加倍怀疑)。这个变乱序列和用户按home键或者切换到其他运用是一律的。阻难上面体验的合头是订阅变乱并适应的庇护形态行为行动人命周期的一部门。
  正在上面的例子,javascript变乱的触发被标注成了斜体。这些变乱有机遇留存和克复你的运用步调形态。你该当通过bindEvents手腕来注册运用步调回调来回应人命周期变乱来留存形态。留存什么息和若何留存音讯由你确定,然则你要确保留存足够的音讯,来无误的克复到用户脱节的地方,s当用户返回到运用时。
  这里有一个格外的性情正在上面的例子中,他仅仅运用与第二种协商的情形(也便是一个插件启动了一个格外的行动)。不单当用户获取完图片运用步调形态损失,用户获取的图片也一律。一样阿谁图片会通过注册正在插件上的一个回调传达给你的运用步调。然而,当Webview被摧毁,回调会被始终损失。光荣的是,cordova-android 5.1.0及其以上供应了一个手腕来获取插件的结果当你的运用克复时。
  当操作编制消灭了由插件推送到布景的Cordova行动,任何增添的回调也损失了同时。这意味着假使你传达了一个回调给插件,这个插件启动了一个新的行动(例子camera插件),这个回调不会触发当运用步调被重修。然而,从cordova-android5.1.0开头,resume变乱有用载荷将会蕴涵任何附加插件的结果从插件吁请启动外部行动使优先级高于行动被消灭。
  请防备插件确定什么蕴涵正在result内部和pluginStatus的寄义。当你要运用的时辰参考插件的API看看这个字段蕴涵什么,以及若何运用这些值。
  // 这个形态代外了运用步调的形态而且会正在onResume()和onPause()中留存和克复
  //这里有一次机遇咱们的运用步调被kill掉正在回调被胜利或者打击挪用之前
  // 正在onPause()和onResume()那里咱们留存和克复形态,来惩罚这个事宜
  // 这里咱们检测咱们是否正在获取图片,假使正在,咱们欲望留存咱们的形态以便onResume()
  // 这里咱们检差存储的形态,假使需求克复他。由你跟踪任何增添的插件结果的源泉
  // (也便是说你代码的哪一步被挪用),又有什么参数供应给插件假使合连
  // 检测插件挪用是否胜利并挪用相应的回调。对待camera插件,OK
  // camera安排同样的结果正在resume对象,由于胜利回调传达给了getPicture(),
  // 所以咱们可能传达同样的回调,返回少许其他东西。盘问文档,明白若何外明你运用
  Android供应了开采者成立测试行动被妨害正在低内存的情形下。正在你的开发或者模仿上模仿低内存场景通过成立 Dont keep activities正在开采者选项菜单。你该当正在这种情形下做大宗测试来确保你的运用保留确切的形态。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

|appname
快速回复 返回顶部 返回列表