首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

这款老牌 “装机必备” 应用,一边用 Kotlin 换血,一边深耕精细市场

这个老牌影像应用是如何在手机自带相机越来越强的冲击下顺利存活的?在技术层面又有哪些追求?这一次,我们带来的是 Camera360 的开发商品果科技的心得与故事。...在组织公司里的工程师们学习 Kotlin ,Lee 改进了以往的培训方式。...在发展初期,Camera360 是记录、创作两手抓,所以早期的一些滤镜 LOMO、复古等,其实都是想让用户更好地记录所见到的世界。...那个时候在各种特效之外,品果的技术团队还在相机启动速度,占用系统资源方面花了很多精力去优化,这也是其得以在第三方相机大战中脱颖而出的一个关键。...在 Google 推出了 ARCore 后,品果也第一间选择了跟进,以期让动态功能的表现力更加优秀。 ?

77570

首款采用Kotlin语言编写的恶意APP现身Google Play商店

:引用空指针; 可以利用JVM、Android和浏览器的现有库进行互操作; 兼容很多现有工具,因为它能够选择任何Java IDE或从命令行构建(Android Studio 3.0提供了帮助用户使用Kotlin...可以在将Java代码粘贴到Kotlin文件中即时转换所有Java文件或代码片段。 谷歌公司于2017年5月宣布 Kotlin为编写Android应用程序的主流语言之一。...回到对于Swift Cleaner的分析,在它首次启动后,会将受害者的设备信息通过短信发送到其远程C&C服务器提供的指定号码,并启动后台服务以从其远程C&C服务器获取任务。...在收到SMS命令后,远程服务器将执行URL转发以及启用点击或广告诈骗。...在受害者点击广告,Swift Cleaner接收执行无线应用程序协议(WAP)任务的远程命令,WAP是通过移动无线网络访问信息的技术标准。

1.6K60
您找到你想要的搜索结果了吗?
是的
没有找到

Android协程的7个必要知识点

学会创建、启动和取消协程。 上下文与调度器: 理解协程上下文的概念,包括调度器(Dispatcher)的作用,如何在不同的线程上执行协程代码。...下面讲深入介绍协程上下文的概念、调度器的作用,以及如何在不同线程上执行协程代码。 协程上下文与调度器 协程上下文是协程运行时的环境,包含了许多不同的元素,调度器、异常处理器等。...在协程作用域内启动协程,它们会继承作用域的上下文和调度器。...例如,一个协程可以等待另一个协程发送特定的信号,或者通过关闭通道来取消一个协程。...在UI线程中启动协程 Kotlin Coroutine允许我们在UI线程中启动协程,通过指定Dispatchers.Main调度器来实现。

51252

Android 12上全新的应用启动画面,还不适配一下?

画面 用途 Splash Screen 展示品牌Logo或Slogan Advertisement Screen 展示节日活动或日常广告 Guide Screen 演示重点功能,一般只展示一次 ?...前言 我们常常花费精力去打造引导画面或广告画面,而作为第一印象的启动画面却容易被忽视。...但这又会带来启动"变慢"的副作用,因为用来过渡的启动画面被关闭之后,App描画前屏幕几乎没有什么变化。...再比如让机器人在Kotlin上侧滑。 ? 或者让几何图案拼凑出字母K之后和机器人汇合,象征着Android和Kotlin的强强联合。 ? 注意: 动画Icon的时长上限为1000ms。...模拟器上运行的缘故,大部分时候我的Demo在启动画面退出的时候Icon动画都结束了,少部分情况下动画还剩余一点间,可能实机的情况会不一样 private fun showSplashIconExitAnimator

2.8K30

Activity 活动跳转(Java&Kotlin

Activity 活动跳转(Java&Kotlin) 任何正式APP都不可能只有一个Activity,当有多个Activity,怎么从一个Activity进入到另一个Activity呢?...)); 如果把刚才Java里的代码复制到Kotlin里,会需要转译,转译后的Kotlin代码如下: Kotlin //活动跳转,从MainActivity跳转到TestActivity,普通跳转...Java //传递方 //活动跳转传值 通过键值的方式传递 另一页面接收根据键来取值 Intent intent = new Intent(this,TestActivity.class...getString("name") ③ 跳转指定启动模式 在代码中动态指定页面的启动模式,因为在AndroidManifest.xml中对每个Activity只能指定唯一的启动模式,如果想在不同时候对同一个...Anko库扩展出来的intentFor函数简化启动标志的设置方式,列启动标志FLAG_ACTIVITY_NEW_TASK 对应的Anko写法如下: startActivity(intent.newTask

1.7K30

快速进阶 Kotlin Flow:掌握异步开发技巧

例如: val flow = simpleFlow() flow.collect { value -> println(value) } 实际应用示例 让我们看一下如何在实际场景中应用 Kotlin...try { flow.collect { value -> // 处理数据 } } finally { // 进行资源清理,关闭数据库连接...,关闭数据库连接、取消网络请求等 } } 结合取消和资源清理 当取消操作和资源清理同时存在,你可以将它们结合起来,以确保在取消操作发生进行资源清理。..."Flow was cancelled") } // 处理数据 } } finally { // 进行资源清理,关闭数据库连接...在处理高频率事件流,这些策略可以帮助控制数据流的流量。Kotlin Flow 也提供了类似的背压处理策略, buffer、conflate 和 collectLatest。

82330

返回数据给上一个活动

一个是 //第一个参数是intent买第二个是请求吗,用来判断数据的来源 这个方法就是在活动销毁返回一个结果给上一个活动,需要 接受两个参数。...第一个参数是intent买第二个是请求吗,用 来判断数据的来源。 ? 在主要的活动里面写 ? 第二个活动里面写响应 接着给第二个按钮注册监听器 在点击事件中添加返回数据的逻辑。...重写一个函数Ctrl+O ---- 这个函数有三个参数一个是是启动活动传入的请求码。...二是我们在返回数据传入的处理结果 三是data,携带有返回数据的Intent由于活动里面可能会调用这个函数去启动不同的活动,每一个活动返回的数据都会回调到 ? 这个方法里面来检查值 ?...你点第二个按钮日志里面会有打印 ? Intent提供了一种在不同应用程序中的代码之间执行后期运行时绑定的功能。它最重要的用途是在启动活动,可以将其视为活动之间的粘合剂。

1K20

LiveData Coroutine Builder的5个诡计

Benefits of using Kotlin’s Coroutine/Flow 使用Kotlin的Coroutine/Flow连接到LiveData的好处是,它可以确保底层组件(存储库、域层)完全在后台完成...该代码块在LiveData变得活跃开始执行,当LiveData变得不活跃,在一个可配置的超时后自动取消。如果它在完成之前被取消,那么如果LiveData再次变得活跃,它将被重新启动。...(观察LiveData)放在后台,并且活动在暂停/停止(注意:不是不保留活动),Coroutine将在timeoutInMs的时间内保持活力。...如果超时在coroutine运行结束前完成,coroutine将在Activity恢复活动重新启动。...如果超时没有完成,当Activity恢复活动,考虑到coroutine没有完成,它将继续进行直到完成。

1.5K60

2018 Google IO 开发者大会发布的那些新技术

Android Jetpack 能够处理类似后台任务、UI 导航以及生命周期管理之类的活动,免去开发者编写样板代码的麻烦,专注提升应用体验。...金丝雀版本同时还包含了可用于创建全新的 Android App Bundle 格式的构建工具、用于快速启动 Android 模拟器的快照功能 (Snapshot)、给下载及安装包瘦身的新 R8 优化器、...最近,我们开始测试 Google Play Instant 与 AdWords 的兼容性,让人们能直接通过通用广告活动 (Universal App campaigns) 覆盖的所有渠道里的广告直接试玩游戏...呈现给用户不一样的内容,并且支持多种谷歌以及 Android 服务平台,包括谷歌搜索应用 (Google Search App)、Play Store、谷歌智能助理 (Google Assistant) 以及启动器...您可同时在应用中构建一个 Conversational Action 作为辅助用途,它适用于任何支持谷歌智能助理 (Google Assistant) 服务的设备,扬声器和智能显示器。

79130

Kotlin入门(21)活动页面的跳转处理

倘若把这两行Java代码转换为Kotlin代码(复制这两行然后粘贴到kt文件中,Android Studio就会自动完成转换),则可看到活动跳转的Kotlin代码如下所示:     val intent...但细心的读者也许已经注意到了,本书附录源码里的活动跳转,并非上述的Kotlin正宗写法,而是下面这种简化版的写法:     startActivity() 究其原因...;如下面右图所示,这是跳转后的第二个页面,界面上展示了第一个页面传递过来的参数信息。...Activity之间传递的参数类型,除了整型、浮点数、字符串等基本数据类型,还允许传递序列化结构Parcelable对象。...接下来就可以利用该类传输活动跳转的序列化数据了,下面是改写后的Kotlin跳转代码:     val request = MessageInfo(et_request.text.toString(),

1.6K30

面向初学者的 Android 应用开发基础知识

如今,KOTLIN 也是首选。XML 文件处理设计、演示、布局、蓝图等(作为前端),而 JAVA 或 KOTLIN 处理按钮、变量、存储等的工作(作为后端)。...它在应用程序启动启动。至少有一个活动始终存在,称为 MainActivity。该活动通过以下方式实施。...例如,当手机的电池电量不足,Android 操作系统会触发广播消息以启动省电功能或应用程序,在收到消息后,应用程序会采取适当的措施。...它还包括特殊活动服务、广播接收器、内容提供者、包名称等。 Java 文件夹: JAVA文件夹包含执行应用程序后台任务所需的 java 文件。...5.OnStop:当活动不再可见时调用。 6.OnRestart:当活动停止并重新启动时调用。 7.OnDestroy:当要关闭或销毁活动时调用它。

1.1K20

Kotlin | 协程是什么?

请相信一句话,任何解释从第二个人口中说出,可能已经存在了变化。而官网是我们接触任何技术最必要的门槛。所以请打开Kotlin中文网。...很多人说kotlin官网教程很不详细,其实不然,kotlin中文网教程很详细。 回到正题: 什么是协程?...所以我希望大家刚入手协程,多从语言角度去理解。 那么,协程是什么? 协程就是一个基于Kotlin语法的异步框架,它可以使开发者以同步的方式,写成异步的代码,而无需关注多余操作。...所谓的非阻塞,其实就是切换了线程,观察打印日志变化,我们可以发现,当我们直接 GlobalScope.launch 启动一个协程,此时运行的线程为默认的线程,所以协程被称为非阻塞的实现方式。...lifecycleScope.launch { ... } } } 同样,当fragment或者Activity关闭,协程同样将自动关闭

56510

在 Android 开发中使用协程 | 上手指南

为了确保所有的协程都会被追踪,Kotlin 不允许在没有使用 CoroutineScope 的情况下启动新的协程。...这是一个标准做法,如果一个用户在尚未获取到数据关闭了应用,这时让请求继续完成就纯粹是在浪费电量。 为了提高安全性,CoroutineScope 会进行自行传播。...注意: 协程被挂起,系统会以抛出 CancellationException 的方式协作取消协程。捕获顶级异常 (Throwable) 的异常处理程序将捕获此异常。...第二个是通过 async 的方式获取文档,所以是会有返回值返回的。...下一步 本篇文章,我们探讨了如何在 Android 的 ViewModel 中启动协程,以及如何在代码中运用结构化并发,来让我们的代码更易于维护和理解。

1.4K20

Kotlin 协程的上下文和调度器介绍-Dispatchers

非受限的调度器非常适用于执行不消耗 CPU 时间的任务,以及不更新局限于特定线程的任何共享数据(UI)的协程。 它会默认继承外部协程对象。...但是,当使用 GlobalScope 来启动一个协程,则新协程的作业没有父作业。因此它与这个启动的作用域无关且独立运作。...但是子协程仍然处于活动状态,那么整个协程就仍然属于活动状态。 当然,我们如果主动调用.cancel() 那么子协程还没有运行完也会被强制结束了。 这就是协程中的父子协程之间的关系了。...初始协程,多元素添加 我们学过载协程中初始化调度器,在上一步也学习了添加协程名称。 那么我们如果在启动的时候这两个配置属性都要进行添加,那么该如何处理? 可以通过+进行拼接。...Kotlin 提供了:ThreadLocal,asContextElement 扩展函数来帮助我们,它们创建了额外的上下文元素, 且保留给定 ThreadLocal 的值,并在每次协程切换其上下文恢复它

35510

Android Dev Summit 21 精彩内容盘点

本次活动围绕这一主旨做了 30 多场技术分享(视频),涉及多个方向: Android 12 12L Building across screens Kotlin Jetpack Jetpack Compose...12L 针对大屏设备和折叠屏对界面进行了优化,例如当屏幕宽度大于 600dp 将默认显示两列内容、引入了类似 Chrome OS 的 Dock 栏等,同时支持拖拽分屏等功能,同时在不同窗口中启动多个应用...WindowSizeClass.EXPANDED } // Use widthWindowSizeClass and heightWindowSizeClass } 复制代码 本次活动中分享的不少新技术都第一间是赔了...Kotlin Flow medium.com/androiddeve… Kotlin方面,本次活动上重点推荐了 Kotlin Flow 在 MVVM 架构中的应用。...,WorkManager 2.7 新增了 setExpedited API,可以高优的立即启动相关任务,不受后台启动的约束。

1.7K20

关于网站备案的那些事情

关于网站备案的那些事情   随着社会的不断进步和信息技术的不断发展,为了避免一些不良信息的传播,网站备案服务也必不可少,那么网站备案的意义何在?...以下便宜技术猫将与大家分享:   一、网站备案解读   网站备案是指在新建网站,需要将网站的主要信息提交给主要机关备案审查。备案获批后,即可正常运营网站。也有相关法律规定了这种行为。   ...网站备案的目的是为了防止一些人在互联网上从事非法经营活动,打击不良信息的传播。如果网站没有备案,网站信息会放在主机上,我们无法正常打开网站。   ...如果使用主机发布网站数据,网站将被强制关闭。   2.未备案的网站只能使用国外主机正常打开,香港主机和美国主机。...一旦网站有违法信息,网站将被关闭

1.5K40

Flutter 后台任务

移动应用程序可能有运行后台任务需求, 监听位置变化,监视用户运动情况(步数、跑步、步行、驾驶等);订阅系统事件 BootComplete、电池和充电,搜索 BT 或 WiFi 网络等。...在 Android 中,我们可以在应用程序实际关闭时运行一些后台任务!...启动 Dart 引擎(来自后台) 当应用启动,Flutter 的 main isolate(入口点)在主(main)函数中启动。...当应用在后台唤醒(例如:启动完成-后台进程初始化器),从持久化存储中获取 RawHandle。...看看如何在 callbackDispatcher 中使用它: 在回调调度程序中(在启动完成后从本地调用),我们现在注册到自己的插件事件,然后调用startPowerChangesListener并在侦听器中捕获事件

3.1K30

【技术博客】数据驱动精准化营销在大众点评的实践

我们在项目启动后与业务充分沟通,了解其业务痛点,确定一期主要尝试从数据上帮助运营和财务同事解决以下几个问题: ① 营销活动前:确定目标和选取活动对象 ② 营销活动中:效果监控和跟踪;用户和商户端策略的输出...这三个都是运营活动必不可少的数据组成部分。 对于画像,我们的做法是部分自主建设,同时集成业务方搜索、广告和风控团队开发的画像标签,形成统一的画像宽表。...运营人员在配置活动,从财务申请预算流水号,并在优惠后台配置与对应活动关联,用户享受优惠的每一笔订单都会在业务表中进行打点,做到在最细粒度上的预算监控。...,push,促销工具等。...Facebook和腾讯的广告系统都提供类似的Lookalike功能,帮助客户找出和投放人群相似的用户群,其广告的点击率和转化率都高于一般针对广泛受众的广告

1.6K90
领券