1.使用VSCode流畅开发Android native ELF
2.VScode如何查看设备日志
3.5 步教你在手机上使用 vscode ,查看查真正具有生产力
4.å¼åå®åappç¨ä»ä¹è½¯ä»¶ï¼
5.VSCode 是统源最佳的开发 Flutter 的 IDE 吗?
6.用vscode开发flutter还用androidstudio吗?
使用VSCode流畅开发Android native ELF
在Android开发中,要流畅地构建和调试Android native ELF,源码VSCode是查看查一个强大的工具。首先,统源确保安装了C/C++、源码js 鼠标滚轮事件 源码CMake、查看查CMake Tools和CodeLLDB插件,统源尤其是源码CodeLLDB,能简化LLDB的查看查配置过程,避免手动设置的统源繁琐。配置CMake时,源码通过工作区设置添加必要的查看查参数,如CMAKE_TOOLCHAIN_FILE和ANDROID_ABI,统源选择arm-v8a架构。源码CMakeLists.txt的编写与常规项目相同,只需声明可执行文件。 调试阶段,重点在于配置跨平台调试。在NDK目录下选择对应架构的lldb-server,然后在手机上启动并使用adb进行端口转发。在VSCode中,配置launch.json以支持远程调试,只需点击F5即可开始。在调试过程中,可以方便地通过反汇编窗口设置断点,查看寄存器值以及内存状态。如果需要,还可以使用调试命令来操作内存,政务审批系统源码如memory write。 对于初学者,一个现成的项目模板可以节省不少时间,可以参考我在GitHub上的模板项目:github.com/ddddhm/vscode_ndk_example。文档支持可以在官方开发者文档中找到:developer.android.com/n...。通过这些步骤,你将拥有一个流畅的VSCode Android native ELF开发环境。VScode如何查看设备日志
VScode是现在十分常用的一款跨平台源代码编辑器,有些用户想知道如何查看设备日志,接下来小编就给大家介绍一下具体的操作步骤。
具体如下:
1. 首先第一步打开电脑中的VScode软件,根据下图箭头所指,点击顶部工具选项。
2. 第二步在弹出的菜单栏中,根据下图箭头所指,点击Android选项。
3. 第三步根据下图箭头所指,成功打开设备日志窗口。
4. 第四步根据下图箭头所指,点击选择设备选项,选中需要查看的设备。
5. 第五步根据下图箭头所指,还可以在搜索框中输入设备名称。
6. 最后根据下图箭头所指,即可查看时间、设备名称、类型等等。
5 步教你在手机上使用 vscode ,autojs脚本提取源码真正具有生产力
要在手机上使用VSCode以提高生产力,需要遵循以下步骤:
首先,配备一个蓝牙折叠式键盘以方便携带,避免仅靠触控输入进行编程。
其次,从类似F-Droid的渠道安装Termux,避免使用可能已过时且不再维护的GooglePlay商店版本。
安装一个Linux系统,使用tmoe来安装proot(在没有root权限的情况下),从而在Termux中运行Linux环境。可以参考文档https://doc.tmoe.me/zh/android.html以获取具体步骤。
安装VSCode。在Arch Linux的终端中输入相应命令进行安装。完成后,通过Termux访问VSCode服务端,可能需要解决网络问题。
使用Via浏览器开启全屏模式,最大化屏幕利用率。调整浏览器设置,如移除菜单栏和命令中心,以便更高效地使用屏幕空间。
探索Linux系统,利用tmoe提供的功能。通过vnc连接进行远程操作时,注意vnc界面可能不如上述方法直观。对于前端开发,使用vnc进行调试也是一条可行路径。
选择合适的哈尔滨建站模板源码手机输入法,推荐百度输入法以提高输入效率。
å¼åå®åappç¨ä»ä¹è½¯ä»¶ï¼
androidç¨ä»ä¹è½¯ä»¶æ²ä»£ç ï¼
æ²ä»£ç ç¨ç软件æï¼Androidstudioï¼WebStormï¼IntellijIDEAï¼sourceinshghtï¼Vscodeã
1ãAndroidstudio
对UIçé¢è®¾è®¡åç¼å代ç ææ´å¥½å°æ¯æï¼å¯ä»¥æ¹ä¾¿å°è°æ´è®¾å¤ä¸çå¤ç§å辨çãåæ ·æ¯æProGuardå·¥å ·ååºç¨ç¾åãä¸è¿ï¼ç®åçæ¬çAndroidStudioä¸è½å¨åä¸çªå£ä¸ç®¡çå¤ä¸ªé¡¹ç®ã
2ãWebStorm
jetbrainså ¬å¸æä¸ä¸æ¬¾JavaScriptå¼åå·¥å ·ãç®åå·²ç»è¢«å¹¿å¤§ä¸å½JSå¼åè èªä¸ºâWebå端å¼åç¥å¨âãâæ强大çHTML5ç¼è¾å¨âãâææºè½çJavaScriptIDEâçãä¸IntelliJIDEAåæºï¼ç»§æ¿äºIntelliJIDEA强大çJSé¨åçåè½ãä¸è¿ï¼æçç²ä¸è¯´è¿ä¸ªæç¹å¡ï¼ä½æ¯åè½è¿æ¯é½å ¨çã
3ãIntellijIDEA
IntellijIDEAæ¯javaç¼ç¨è¯è¨å¼åçéæç¯å¢ï¼å¨ä¸çå ä¹è¢«å ¬è®¤æ¯æ¯è¾å¥½çä¸ä¸ªjavaå¼åå·¥å ·ã
4ãsourceinshght
ä¸ä¸ªé¢å项ç®å¼åçç¨åºç¼è¾å¨å代ç æµè§å¨ï¼å®æ¥æå ç½®ç对C/C++ï¼C#åJavaçç¨åºçåæãSourceInsightè½åæä½ çæºä»£ç 并å¨ä½ å·¥ä½çåæ¶å¨æç»´æ¤å®èªå·±ç符å·æ°æ®åºï¼å¹¶èªå¨ä¸ºä½ æ¾ç¤ºæç¨çä¸ä¸æä¿¡æ¯ãSourceInsightæä¾äºæå¿«éç对æºä»£ç ç导èªåä»»ä½ç¨åºç¼è¾å¨çæºä¿¡æ¯ã
5ãVscode
Vscodeå ¨ç§°VisualStudioCodeï¼æ¯ä¸æ¬¾é对äºç¼åç°ä»£webåäºåºç¨ç跨平å°æºä»£ç ç¼è¾å¨ã
ææºAPPå¼åå·¥å ·æåªäºå¿«éç¼å代ç
éç移å¨äºèç½çé£éåå±ï¼æºè½ææºçæ®ååï¼ææºappåºç¨è½¯ä»¶å·²ç»æ为äºäººä»¬çæ´»ä¸çä¸é¨åï¼APPå¼åè¡ä¸ä¹ç±è¿å»çèæµ·åæ红海äºã
èapp软件å¼åçæçå·²ç»æ为äºç®åå¼åè¡ä¸çå ³é®ï¼å¦ä½æè½å¿«éæåapp软件å¼åæçï¼è¿æ¯æ¯ä¸ä½app软件å¼åå·¥ç¨å¸æä¸ºå ³å¿çé®é¢äºï¼é£ä¹å¦ä½æè½æå软件çå¼åæçå¢ï¼è¿å½ç¶ç¦»ä¸å¼ä¸æ¬¾å¥½çapp软件å¼åå·¥å ·äºã
ä¸é¢å°±ä¸ºå¤§å®¶ä»ç»å 款ç®åAPPå®å¶å¼åå¸åºç主æµå¼åå·¥å ·ã
é¦å ï¼APPå¼åå æ¬å 个平å°ï¼IOSå¼åãAndroidå¼åãwindowså¼åï¼IPadå¼åçï¼ä¸åçå¹³å°åºç¨è½¯ä»¶å¼åæä¸åçappå¼åå·¥å ·ã
BiznessApps软件å¼åå·¥å ·ï¼
BiznessApps软件å¼åå·¥å ·
è¿æ¯ä¸åä¸é¨ä¸ºä¸å°ä¼ä¸æä¾çä¸ä¸ªå¿«éå¶ä½ææºAPPåºç¨è½¯ä»¶çå¹³å°ã
å®ç®åæ¯æçå¼åå¹³å°æIOSï¼å«iPhoneåIPadï¼ãAndroidè¿ä¸¤ï¼å¼åè å¯ä»¥ç´æ¥å¨è¿ä¸ªå¹³å°ä¸å¶ä½IOSåå®åçappåºç¨ã
è¿æ¯ä¸æ¬¾å¯è§åçæä½è½¯ä»¶ï¼ç¨æ·å®å ¨ä¸éè¦ä¸¾æ¥ä»»ä½çç¼ç¨ç¥è¯ï¼åªéè¦å¨å¹³å°ä¸å¾éåææ½å°±å¯ä»¥äºï¼ç®åææä½ã
BiznessApps为åç§ç±»åçappæä¾ç¸åºç模çï¼ä»¥åå个模çç¸åºç常è§åè½ï¼å¼åè åªéè¦è¿ä¸æ¥å¾éèªå·±éè¦çåè½å°±å¯ä»¥å®ææ´ä¸ªçapp设计ã
APPMakr软件å¼åå·¥å ·ï¼
APPMakr软件å¼åå·¥å ·
è¿ä¹æ¯ä¸æ¬¾å¯è§åçå¼åå·¥å ·ï¼ä¸»è¦ç对象è¿æ¯é对ä¸ä¼ç¼ç¨çç¨æ·æä¾çä¸ä¸ªåè½é½å ¨çææºAPP客æ·ç«¯è½¯ä»¶å¼åå¹³å°ï¼éé¢å¸¦æåè½é½å ¨çDIYå·¥å ·å ï¼ç¨æ·å¯ä»¥æ ¹æ®èªå·±çéæ±DIY设计èªå·±éè¦çAPP软件ã
ç®åAppMakrå·¥å ·å¤§é¨åæ¯é对IOSç³»ç»å¼åçã
Appsgeyser软件å¼åå·¥å ·ï¼
Appsgeyser软件å¼åå·¥å ·
使ç¨AppsGeyserå°±å¯ä»¥è®©ä»»ä½äººé½å¯ä»¥ååºç¨ç¨åºçå¼åã
å½ç¶ï¼è¿ä¸ªç¨åºå¹¶ä¸è½è®©ä½ å建ä¸ä¸ä¸ªæ¤æçå°é¸æè Foursquareã
MobileRoadieAPPå¼åå·¥å ·ï¼
MobileRoadieAPPå¼åå·¥å ·
è¿æ¯ä¸æ¬¾ç®åå½å¤æ¯è¾æµè¡çapp软件å¼åå·¥å ·ï¼MobileRoadieå·¥å ·æ´åäºæ´åYouTube,Brightcove,Flickr,Twitpic,Ustream,Topspin,Googleèµè®¯ï¼RSS,TwitteråFacebookã
ç¨æ·å¯ä½¿ç¨è¯¥åºç¨å¹³å°å¼åiOSåAndroidçåºç¨ï¼å¹¶å¯ä»¥ä½¿ç¨å ¶æä¾çå 容管çç³»ç»æ´æ°èµè®¯ï¼ä¹å¯èªè¡ä¿®æ¹åºç¨ç»èã
MobileRoadieè¿æä¾äºæ°æ®åæå·¥å ·ã
DevmyAppå¼åå·¥å ·ï¼
DevmyAppå¼åå·¥å ·
è¿æ¯ä¸æ¬¾æ¯è¾å»çå¼çiOSææºå®¢æ·ç«¯å¼åå·¥å ·ï¼è¿æ¬¾å·¥å ·ä¸»è¦é对çæ¯IOSç³»ç»çå¼åã
æäºè¯¥è½¯ä»¶ï¼å¼åè å°±å¯ä»¥èªç±çå建ã设计åå¼åèªå·±çiOSåºç¨ç¨åºäºï¼åæ¶è¿å¯é¿å 为ä¸äºç»å¸¸åºç°çåè½æ¨¡åéå¤ç¼å代ç ï¼è¿æ¬¾ç¨åºæ¯è¾éåè¹æææºå®¢æ·ç«¯è½¯ä»¶çå¶ä½å¼å
æ»ç»ï¼ä»¥ä¸è¿äºæ¬¾ææºappå¼åå·¥å ·æ¯ç®åå¸åºä¸ä¸»æµçappå¼åå·¥å ·ï¼ä¸è¿æ¯æç¼ç¨è¿æ¯ä¸æåæé½é常çéåï¼ä¸æ¬¾å¥½çapp软件å¼åå·¥å ·å¯ä»¥å¤§å¤§çæåå¼å人åçå¼åæçã
å®åç游æå¶ä½ç¨ä»ä¹è½¯ä»¶ï¼é¦å è¦ä¼è®¡ç®æºè¯è¨ï¼æ¯å¦Javaç¼ç¨è¯è¨å°±å¯ä»¥å¼åå®å游æã
è¿ä¼è®¾è®¡æ¸¸æå¼æï¼æ¯å¦AndEngineçå¼æºæ¸¸æå¼æåBox2Dç©çå¼æçã
è¿æ软件å¼åå·¥å ·ï¼æ¯å¦Android软件å¼åå·¥å ·å AndroidSDKã
å¦å¤å¾åå·¥å ·ï¼æ¸¸æ离ä¸å¼å¤§éçå¾åAdobeIllustratoræå ¶ä»ä¸ä¸å·¥å ·ã
æ©å±èµæï¼
å®åAPKå¼åç¯å¢
Androidæ¯ä¸ä¸ªåºäºJavaçå¼åç¯å¢ï¼Googleä¹å¨APIææ¡£ç书ååæ ·ä¾çæä¾ä¸åäºå¾åºè²çå·¥ä½ã
ä¸è½½å¹¶å®è£ androidçSDK[软件å¼åå¥ä»¶]ï¼è¿å¥SDK主è¦å æ¬ææ ¸å¿åºæ件ï¼ä¸ä¸ªæ¨¡æå¨ï¼å¼åå·¥å ·åä¸äºç¤ºèçæ ·ä¾æ件ãæ¨è使ç¨Eclipseåandroideclipseæ©å±ã
å¦æåªæ¯ä½¿ç¨androidï¼EclipseIDE就已ç»è¶³å¤äºï¼ä½å¦ææ¯ç¬¬ä¸æ¬¡å¼åJavaåºç¨ï¼ä¸è½½å®æ´çJavaSEå¼åå·¥å ·(JDK)å®å æ¬ç¾ååºç¨ç¨åºæéè¦çå·¥å ·ã
åèèµææ¥æºï¼ç¾åº¦ç¾ç§-apk
åå®å软件å¼åéè¦åªäºå·¥å ·ï¼androidæ¯åºäºlinuxçï¼æ以å¨ubuntuä¸æ¯æ好çãå½ç¶windowsä¸é¢ä¹æ¯å¯ä»¥çãä½æ¯androidçå æ ¸æ¯åºäºlinuxçï¼å¹¶ä¸éè¿ç»ç«¯è¿è¡åç§æä½ï¼é常强大ï¼ä¹æ¯cmdæ¹ä¾¿ã
大è´å¼åçç¯å¢æ¯è¿æ ·ï¼ubuntuç³»ç»ï¼ä»¥åæ¯windowsç¶åå®è£ äºubuntuçèææºãandroid大é¨åçå¼åé½æ¯ä¸é´å±å°é¡¶å±çåºç¨å¼åï¼æ以åºæ¬ä¸æ¯javaå¼åã
表é å¦ä¸ï¼1eclipseæ¯å¼åjavaå¿ å¤ï¼ä¹æ¯androidå¿ å¤ãï¼å½ç¶åææ¯å å®è£ JDK1.6ï¼
2ä¸è½½androidçSDKåADTãè¿æ¯androidçå¼åå¿ é¡»çå·¥å ·ï¼adbãddmsãmksdcardãaaptï¼debugå¿ å¤
Aå®è£ å®eclipseåï¼éè¿help=ãinstallnewsoftwareæADTå®è£ 好
Bç¶åwindow=preference设置好SDKçè·¯å¾å³å¯
å¦æç¨å°Cå¼åçè¯ï¼å¯ä»¥å®è£ ä¸ä¸CDT
ç°å¨å¯ä»¥éè¿AVDmanagerå®è£ ä¸ä¸èªå·±æ³å¨åªä¸ªå¹³å°ä¸çapiï¼æ¯å¦ï¼android2.3.4ï¼å°±å¯ä»¥å»ºä¸ä¸ª2.3.4çemulatorï¼æ模æå¨è·èµ·æ¥ãéè¿adbddmsçå·¥å ·å¯çãå¼åäºã为äºæ¹ä¾¿ï¼æadbçè·¯å¾å å°ç¯å¢åééã
设计ä¸ä¸ªappï¼éè¦ç¨å°åªäºè½¯ä»¶ï¼appæ两个éµè¥ï¼ä¸ç¥éé¢ä¸»è¯´çå®åéµè¥çè¿æ¯è¹æéµè¥ï¼ä¸é¢ä¸¤ä¸ªé½è¯´ä¸ä¸å§ï¼
å®åappå¼åå·¥å ·å¯ä»¥ç¨å®åèªå·±å®¶æ¨åºçAndroidstudioæè eclipesççã
è¹æappçå¼åå·¥å ·å¯ä»¥ä½¿ç¨coderunnerï¼appcodeæè chocalatççã
欲åå ¶åï¼å¿ å å©å ¶å¨ï¼éæ©ä¸æ¬¾å¥½çå¼åå·¥å ·å¯ä»¥å¸®å©ä½ æ´å¿«çæ·±å ¥äºè§£ï¼
VSCode 是最佳的开发 Flutter 的 IDE 吗?
在构建和优化 Flutter 应用开发流程中,选择一个高效的集成开发环境(IDE)至关重要。IDE 不仅仅是一个工具,而是提升生产力,保证代码质量的关键。Flutter,作为跨平台开发的强力框架,对IDE的性能和特性有极高的要求。
众多 IDE 中,Visual Studio Code(VSCode)凭借其灵活性和强大的插件生态系统,常常被开发者视为开发 Flutter 的理想选择。它具有高度的性能和速度,能够快速编译、运行和调试代码,极大地节省开发时间。
Android Studio,作为 Android 开发的官方IDE,与 Flutter 结合后,提供了深度的平台整合,尤其适合需要Android专业支持的开发者。DartPad 则以在线轻量级特性吸引着寻求简洁编码体验的开发者,而 IntelliJ IDEA 以其深度编码辅助功能为追求高效的专业人士提供了有力支持。
Flutlab 作为基于云的 IDE,为无硬件限制的开发者提供了云端流畅开发体验。XCode 则是 iOS 开发者与 Flutter 结合的首选,结合了苹果生态的稳定性和 Flutter 的创新性。FlutterFlow 则凭借其可视化开发工具,在线生成网址源码降低了非编码人员的开发门槛。
虽然Emacs Dart 模式适合 Emacs 爱好者,而RevenueCat 专注于应用内购和订阅功能的集成,Atom 则以社区扩展丰富了文本编辑体验。每个 IDE 都有自己的优势,开发者应根据具体需求和偏好,从兼容性、性能、社区支持和成本等因素综合考虑,选择最适合自己的 Flutter IDE。
用vscode开发flutter还用androidstudio吗?
使用VSCode进行Flutter开发,尽管可以满足初级需求,但仍难以避免需要使用Android Studio。例如,遇到原生配置问题时,使用Android Studio打开工程,往往可以解决构建问题,而VSCode无法支持原生项目。同时,Android Studio是Android SDK绑定的集成开发环境,无论怎样,开发者都必须安装。对于深入开发者,编写插件或调用安卓端原生接口通信时,只能选择Android Studio。那些认为两个工具随便用,依据个人喜好的说法,多数来自于前端开发者,缺乏深入移动开发经验。实际上,要真正做好Flutter,不仅需熟练使用Android Studio,还需掌握Xcode,以为仅用一个VScode就能搞定深度开发的想法过于天真。随着项目复杂度增加,依赖的原生插件增多,一旦项目运行出现问题,就会明白不使用原生IDE的弊端。
建议开发者不要局限于使用单一工具,特别是前端转做Flutter的开发者,应根据实际需求选择合适的工具。不应总想着一个工具能通吃全部。作为一个Flutter的深入开发者,我实际上会交替使用Android Studio、VSCode和Xcode,不存在一个工具就能满足所有深度开发需求的情况。
总结而言,学习Flutter时,推荐参考我开发的库和撰写的教程。
安卓开发只用Android studio好,还是综合用比较好?
安装的比较eclipse ADT-.3的安装包大约M,android studio-0.3.1的安装包大约M,安装包大小与下载的版本与来源有关系。
eclipse ADT下载完毕,解压出来,指定工作目录,直接就可以进行项目开发了,非常顺。
android studio下载完毕,要通过向导进行安装,并且直接引导进行项目新建,这时要从google及gradle网站上下载许多东西,最少要等1个小时,高版本由于google无法访问的原因,导致下载失败,直接止步于此了。
2
运行的资源占用率及效率
eclipse ADT运行时内存占用约M,android studio运行时内存占用约M。
3
项目的新建效率
eclipse ADT通过向导5个步骤就可以快速新建一个Android project。
android studio通过向导4个步骤可以新建一个Android project,但是创建gradle项目框架较慢。
4
项目的开发效率及易用性比较
eclipse ADT在页面xml样式参数配置方面较差,大部分参数只能写代码设置。
android studio在页面xml样式参数配置方面强,参数可直接选择配置。
android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开多个项目,对于手头项目多,需要多个项目同时开发、维护的团队eclipse ADT更好用些。
5
项目的运行速度比较
eclipse ADT开发运行调试慢是常被诟病的,那么这个android studio项目运行如何? eclipse ADT启动AVD模拟器,耗时3分钟;android studio无法启动,后来一通设置后,在AVD中增加模拟器,还是无法启动。
它们使用的模拟器都是基于android SDK的AVD,就算都运行了,速度也是一样的。
可见android studio并没有速度方面的优势。
6
项目的混淆,打包、发布、管理
这部分以后再深入分析追加,总的来说,在国内这环境中,eclipse ADT更适用一些。android studio并没有明显的使用上的优越性。
写给应用开发的 Android Framework 教程——玩转AOSP篇之 Android 系统开发工具推荐
SSH 服务与 Tabby Terminal 提供了便捷的远程访问 Linux 服务器方式,方便进行开发工作。SSH 服务搭建通过配置 Ubuntu,客户端 Tabby Terminal 便于使用。
vim 编辑器支持文件修改,熟练掌握一般模式、编辑模式、命令行模式操作至关重要。通过分号切换到命令行模式,实现指令执行。
find + grep 命令用于在 Android 系统源码中快速查找特定文件和内容,简化搜索过程。
Samba 服务器搭建实现在 Ubuntu 与 Windows 之间的文件共享,使用smb.conf 配置文件完成。
完成源码下载与配置后,通过 AIDEGen + Android Studio 实现更高效地查看和修改系统源码。
VSCode 文本编辑器提供了强大的插件系统,适用于 Android 系统开发,支持本机与远程使用。
adb 工具是 Android 开发者的必备工具,主要功能包括设备管理与应用调试。
推荐的工具如 SSH 服务、Tabby Terminal、vim、find + grep 命令、Samba 服务器、AIDEGen、VSCode 和 adb 工具,为 Android 系统开发提供了高效便捷的支持。
vscode最适合编程的 6 种字体
本文探讨了适合编程的六种字体,旨在优化开发人员的视觉体验,减轻眼睛疲劳,提高编码效率。
首先介绍的是 MonoLisa,它采用了独特技术提升易读性,长时间观看不易引起视觉疲劳,深受个人喜爱。此外,JetBrains Mono作为开发者专属字体,以其高度和特定于代码的连字脱颖而出,提供了简洁美观的视觉体验,且免费提供。
Fira Code是另一款免费的等宽字体,具有与ASCII兼容性及连字特性,大大提高了代码的可读性。开源字体Source Code Pro在开发者社区中备受欢迎,提供免费下载,深受用户好评。Droid Sans Mono是一款开源无衬线字体,广泛应用于Android生态系统,提供版本以区分数字与圆圈。
Monoid作为开源编码字体,以其独特的孔径设计、短的上升和下降特点,在众多等宽字体中脱颖而出。它支持连字,还能在代码中直接展示Font Awesome图标,为开发者提供独特体验。
综上所述,每种字体在设计上都有其独特之处,适合不同的编程需求。选择合适的字体,不仅能提升编码时的舒适度,还能在一定程度上提高代码的可读性和美观性。希望本文提供的字体选择能帮助到广大开发者,提高编程效率。
2024-11-20 20:09
2024-11-20 20:07
2024-11-20 19:04
2024-11-20 18:53
2024-11-20 18:36
2024-11-20 18:18
2024-11-20 18:10
2024-11-20 17:39