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

Android Studio 4.1 发布啦

模拟器 现在用户可以直接在 Android Studio 运行 Android 模拟器,该功能可以帮助开发者节省屏幕空间,使用快捷按键可以在模拟器和编辑器窗口之间快速导航,可以在一个窗口中查看模拟器和代码布局...要导航到另一个事件,请从表中选择另一行。 Display data :在“Display”部分,SurfaceFlinger 和 VSYNC 的新时间线可以帮助开发者调查应用程序UI中的渲染问题。...本机崩溃报告的符号 当本机代码发生崩溃或ANR时,系统会生成堆栈跟踪,该跟踪是程序崩溃之前一直在程序中调用的嵌套函数序列的快照。...初始部署后,使用“Apply Code Changes” 或 “Apply Changes and Restart Activity”的 后续部署到Android 11设备的 速度现在显着提高。...支持其他代码更改 对于运行Android 11 Developer Preview 3或更高版本的设备,现在可以添加方法然后通过单击 Apply Code Changes 或Apply Changes

6.5K10

Java内存泄漏检测库LeakCanary介绍,了解?

在创建大对象(如位图)的地方,这种情况更容易发生。OOM是一个更深层次问题的征兆: **内存泄漏 **。 什么是内存泄漏? 某些对象的寿命有限。当他们的工作完成后,他们会被垃圾收集起来。...如果一个引用链在一个对象的预期生存期结束后将其保存在内存中,这将导致内存泄漏。当这些漏洞累积起来时,应用程序的内存就会耗尽。...您可能需要购买、借用或窃取发生崩溃的特定设备。(并非所有设备都会出现泄漏!)您还需要弄清楚是什么导航序列触发了泄漏,可能是暴力造成的。 当OOM发生时转储堆。...只需一行代码,LeakCanary就会自动检测活动泄漏: public class ExampleApplication extends Application { @Override public...结论 启用LeakCanary后,我们发现并修复了应用程序中的许多内存泄漏。我们甚至在Android SDK中发现了一些漏洞。 结果是惊人的。现在,OOM错误导致的崩溃减少了94%。 ?

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

    【老孟Flutter】Flutter 2 新增的功能

    除了我们的HTML渲染器之外,我们还添加了一个新的基于CanvasKit的渲染器。我们还添加了特定于Web的功能,例如Link小部件,以确保在浏览器中运行的应用感觉像Web应用。...这使开发人员能够防止null错误崩溃,这是应用程序崩溃的常见原因。通过将空检查合并到类型系统中,可以在开发过程中捕获这些错误,从而防止生产崩溃。...在处理完键盘事件后停止传播。在鼠标输入端,现在可以立即开始使用高精度定点设备进行拖动,而不必等待处理触摸输入时所需的延迟。...Flutter修复 每当任何框架成熟并使用越来越多的代码库聚集用户时,随着时间的推移,趋势就是避免对框架API进行任何更改,以避免破坏越来越多的代码行。...图片发布 Sentry崩溃报告工具现在支持Flutter 借助Sentry的Flutter SDK,您可以实时收到在Android,iOS或本机平台上发生的错误的通知。

    7.9K20

    Android Hook与简单的xposed模块开发实例

    Hook是一种在特定事件或操作发生时插入自定义代码的编程技术。...Android Hook与此类似,允许开发者在Android应用程序运行时修改或扩展现有功能。...通过拦截方法调用、修改参数或返回值,Hook可用于调试、测试和逆向工程,例如监控应用程序行为、捕获API调用,或在不修改源代码的情况下添加新功能,以及替换so模块以实现获取验证码或广告拦截等功能。...Xposed通过替换核心文件app_process工作,这种方式在新的Android系统中容易冲突,导致不稳定甚至崩溃。...通过实现这个接口,模块可以在特定应用被加载时执行自定义代码。XposedBridge:Xposed框架的核心类,提供了多种方法来进行hook和日志记录等操作。

    7000

    如何优化您的 Android 应用(Go 版)

    这个应用程序可能是多进制的,但对于低 RAM 设备没有特定的经验。我们强烈建议您使用新的 Android App Bundle 来体验高达 65% 的体积节省,而无需重构代码。...确定应用策略后,在优化您的应用时需要考虑一些关键因素: 确保您的应用没有 ANR 和崩溃 针对 Android Oreo 您安装的应用程序要低于 40 MB,游戏要低于 65 MB 应用程序的 PSS...Google Play 控制台中的 Android 重要功能可让您跟踪 ANR 和崩溃情况,并深入了解影响特定用户或设备类型的错误。...为了保持我们的 Android Go APK 尺寸小,我们首先将我们的代码分成多个模块,然后使用产品风格来定义特定的 Go 和常规版本,“ AliExpress 高级 Android 工程师 Donghua...保持冷启动时间在 5 秒以下 感知是关键。在用户测试和研究中,等待应用程序或游戏加载5秒后,人们会感到沮丧,这会导致放弃和卸载。

    1.8K20

    在 Android Instant App(安卓即时应用程序)中启用 ProGuard (混淆)

    问题剖析 - 两种不同的构建方式 在一个典型的场景中,在模块化应用程序并使用新的 Gradle 插件后,您的项目结构将如下所示: ? 一个典型的多功能安装 + 即时应用程序项目。...在共享的即时应用程序/可安装应用程序项目中,功能模块替换旧的 com.android.library 模块。 当构建一个可安装的应用程序时,ProGuard(混淆)会在构建过程结束时运行。...功能模块的行为与库相似,它们都将代码和资源提供给编译的最后阶段,在应用程序模块中这些都发生在将所有东西打包成一个 APK 之前。...现在我们明白了为什么 ProGuard(混淆)会失败了,是时候解决这个问题了:确保我们为项目配置添加必要的保留规则,以防止在不同模块(在一个模块中定义,在另一个中使用)之间的类被移除或混淆。...遵循这些步骤应该能带你完成构建,并防止你的即时应用程序崩溃。

    2.6K30

    Android性能优化(一)

    在冷启动开始时,系统有三个任务。这些任务是: 加载并启动应用程序。 启动后立即显示应用程序空白的启动窗口。 创建应用程序进程。 一旦系统创建应用程序进程,应用程序进程就会负责下一阶段。...启动后立即显示应用程序空白的启动窗口。 创建应用程序进程。 所谓的主题优化,就是应用程序在冷启动的时候(1~2阶段),设置启动窗口的主题。...Android 的两种崩溃: Java 崩溃 Native 崩溃 简单来说,Java 崩溃就是在 Java 代码中,出现了未捕获异常,导致程序异常退出。...崩溃是属于 Java 崩溃、Native 崩溃,还是 ANR,对于不同类型的崩溃关注的点也不太一样。特别需要看崩溃堆栈的栈顶,看具体崩溃在系统的代码,还是 APP 代码里面。...通过上面的共性归类,我们先看看是某个系统版本的问题,还是某个厂商特定 ROM 的问题。虽然崩溃日志可能没有我们自己的代码,但通过操作路径和日志,可以找到一些怀疑的点。 尝试规避。

    2.7K20

    又一巨头从 Java 迁移到 Kotlin !

    以及领域特定语言 (DSL) / 类型安全构建器等。...截至目前,Facebook、Messenger 和 Instagram 的 Android 应用程序都有超过 100 万行 Kotlin 代码,并且转换率正在提高。...Meta 的 Android 代码库总共已包含有超过 1000 万行的 Kotlin 代码。作为此次迁移的一部分,Meta 透露其也正在开源用于操作 Kotlin 代码的各种示例和实用程序。...platform types 会导致运行时空指针取消引用,从而导致崩溃,破坏了纯 Kotlin 代码提供的静态安全优势。...我们的代码库中已经有超过 1000 万行 Kotlin 代码,而且 Meta 的大多数 Android 开发人员现在都在编写 Kotlin 代码”。平均而言,此次迁移使代码行数减少了 11%。

    48120

    Xamarin 学习笔记 - 配置环境(Windows & iOS)

    因此,Xamarin是开始开发跨平台应用程序的解决方案,它为你提供了本机代码输出的iOS,Android甚至是UWP的流畅用户界面。...你可以在一个Portable工程里面通过XAML加上C#或者使用Xamarin.Android或Xamarin.iOS构建表单,在这种情况下,我们需要用到特定的本地环境,比如说通过C#代码操纵iOS的Storyboard...Android SDK 按照站点上的说明,Android SDK将与Android Studio一起安装,但是在Visual Studio 2017中,Android SDK将集成在一起,因此不需要手动添加...Portable 类库允许你书写代码并生成可以在不同平台下共享的类库,包括Xamarin.iOS,Xamarin.Android,以及Windows Phone。...一旦发布并使用了应用程序,开发人员就想知道发生了什么并且在发生崩溃时易于维护,你可以从应用程序的字段中获取崩溃报告中的实时堆栈跟踪。

    6.2K20

    C# 一分钟浅谈:MAUI 跨平台移动应用开发

    它支持 Windows、macOS、iOS 和 Android 等多个平台。本文将从基础概念入手,逐步深入探讨 MAUI 的常见问题、易错点及如何避免,并通过代码示例进行说明。....平台特定代码问题描述在跨平台开发中,有时需要编写特定于某个平台的代码。例如,访问 iOS 的相机或 Android 的通知服务。...解决方案.NET MAUI 提供了 #if 预处理器指令来编写平台特定的代码。#if ANDROID// Android 特定代码#elif IOS// iOS 特定代码#endif2....调试技巧问题描述调试跨平台应用时,可能会遇到一些棘手的问题,如平台特定的崩溃、性能瓶颈等。解决方案使用日志:在关键位置添加日志输出,帮助定位问题。...平台特定调试:对于平台特定的问题,可以使用平台提供的调试工具,如 Android Studio 的 Logcat。结论.NET MAUI 为跨平台移动应用开发提供了强大的支持。

    17310

    功能更强,代码和错误更少!Duolingo 和 Google Home 的 Kotlin 之旅

    应用大受欢迎,团队肯定备受鼓舞,于是决定把最棒的创意和功能添加进应用中,然后用户们会更加满意,如此循环……然而如此美妙的图景在现实中会遇到 "现实的问题": 代码量陡增,以及随之而来的开发和维护成本 代码中的错误也随之增加...△ Duolingo 代码量随时间的变化,绿色为 Kotlin 团队博客: 将 Duolingo 的 Android 100% 迁移至 Kotlin 总体而言,在迁移到 Kotlin 后,我们非常满意...,也很高兴看到 Kotlin 在我们公司和整个软件行业中的使用率不断增长!...例如,使用数据类和 Parcelize 插件:  一个在使用 Java 时需要手动编写 126 行代码的类,现在使用 Kotlin 只需编写 23 行,代码量减少了 80% 。...对于 Google Home 这样的大型成熟应用 (代码超过数百万行),能够逐步添加 Jetpack 库会很有帮助。纳入这些库后,该团队可以整合并替换量身定制的解决方案,有时甚至只需要一个库。

    1.2K20

    LeakCanary 学习与实践

    The First: 没有人喜欢OutOfMemoryError崩溃 在Square Register中,我们在 bitmaps 缓存上绘制客户的签名。...有些物体的寿命有限(在程序中,当某个对象已经使用完毕后,GC 则会对此进行回收)。当他们的工作完成后,他们将被当作垃圾回收。...可能需要购买,借用或窃取(手机)遭受崩溃的特定设备信息。(并非所有设备都会出现所有泄漏!)...发现彩蛋 Android SDK可能导致泄漏吗? 是。在AOSP以及制造商实现中,已经存在许多已知的内存泄漏。当发生这样的泄漏时,作为应用程序开发人员,我们几乎无法解决此问题。...'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4' 在 Application 中添加 LeakCanary: public class

    1.3K30

    Android 中意料之外的应用崩溃以及它们的解决方案

    而在应用发布后,监视应用程序中这些不断增加的崩溃是一种极其不愉快的体验。 不管应用程序的业务逻辑如何,都可能会因为运行的系统或平台问题而导致出现某些奇怪的崩溃现象。...在 Android 中,从后台状态恢复应用程序时可能会产生崩溃 —— 此类崩溃是意外发生的,而且仅通过查看崩溃日志,我们很难理解崩溃的具体原因以及解决问题,而本文讨论了此类问题及其解决方法。...问题 在监视产品的崩溃日志时,我注意到一些问题与日俱增。该应用在正常测试条件下似乎运行良好,并且崩溃不可复现,直到应用程序从后台任务中进入前台。...复现崩溃 在模拟器或通过 USB 电缆(译者注:Android 11 也可使用 Wi-Fi 连接设备调试)连接的实际设备上使用 ADB 运行指令(如 Android Studio)运行的任何应用程序。...结论 在 Android 平台上,由于进程被终止而导致的应用崩溃是很常见的。而如果我们使用较新的 Android 版本,我们可以注意到,出于节省电源的目的,大量的后台应用程序被强制结束运行了。

    1.2K10

    JNI使用内存相关问题记录

    /144136be6be9 在java与c构建多实例的案例中,java中对象保存一个long型成员变量,作为对应c实例的指针,jni层在新建c对象后,将对象指针(64位)转成长整型返回给java成员变量保存...spm=1001.2014.3001.5501 3、Crash调试手段: Android的NDK调试工具ndk-stack,ndk-stack是ndk开发工具包下提供的好用工具,能结合崩溃日志给出详细分析...; 基础用法: ndk-stack -sym 带有符号表的so所在的目录 -dump 崩溃日志: 比如  ~/Library/Android/sdk/ndk/android-ndk-r16b/ndk-stack...补记:20210702 事出蹊跷必有因,在Linux平台运行正常的代码,在Windows平台就会出现异常,原来是Windows平台的calloc申请出来的内存并不会自动清0,导致结构体中指针对象为非法指针...visual studio 2017 中文注释影响代码逻辑,比方: // 中文注释 if(xxx)  // 这一行被当作是注释了 {     do_something... } switch(value

    37020

    android studio logcat技巧

    Studio 中的 Logcat 窗口通过实时显示来自设备的日志来帮助您调试应用程序,例如,使用 Log 类添加到应用程序的消息、来自在 Android 上运行的服务的消息、或系统消息,例如发生垃圾收集时...当应用程序引发异常时,Logcat 会显示一条消息,后跟包含该代码行链接的关联堆栈跟踪。 Logcat 窗口入门 要查看应用程序的日志消息,请执行以下操作。...Android Studio 中的拆分 Logcat 窗口。 在 Logcat 工具栏中,您可以滚动到日志末尾,也可以单击特定行以保持该行可见。...通过在字段名称前添加 - 来表示否定。例如, -tag:MyTag 匹配 tag 不包含字符串 MyTag 的日志条目。 正则表达式匹配是通过在字段名后附加 ~ 来表示的。例如, tag~:My....is 键 您可以按如下方式使用 is 键: is:crash 匹配表示应用程序崩溃(本机或 Java)的日志条目。

    18210

    【重磅推荐】2015年移动应用质量大数据报告

    有时候一个应用程序的崩溃可能在你开启它的一瞬间就会发生,或者在你不希望停下的时候发生,每次崩溃都会导致大量用户卸载应用。...6游戏应用的崩溃率最高 在 iOS 和 Android 这两大平台上,游戏的崩溃率都远高于应用类型。...10空指针异常是 Java 代码最常出现的错误 30% 的 Android 应用崩溃是由于 Java 空指针异常引起的。...11近半 Android 崩溃发生在应用启动后60秒内 Android上的应用崩溃,有近 50% 是发生在启动应用运行的前60秒,使用优测等云测试平台对应用进行适配测试,主路径覆盖,可以在应用发布前发现一半的应用崩溃问题...17非法参数异常是 Objective - C 代码最常出现的错误 iOS应用崩溃中,非法参数异常是 Objective - C 代码最常出现的错误,所以平时在写代码的时候,需要多加注意传参的检查,避免传入非法参数导致异常

    96730

    【重磅推荐】2015年移动应用质量大数据报告

    有时候一个应用程序的崩溃可能在你开启它的一瞬间就会发生,或者在你不希望停下的时候发生,每次崩溃都会导致大量用户卸载应用。 ?...6.游戏应用的崩溃率最高 在 iOS 和 Android 这两大平台上,游戏的崩溃率都远高于应用类型。...10.空指针异常是 Java 代码最常出现的错误 30% 的 Android 应用崩溃是由于 Java 空指针异常引起的。 ?...11.近半 Android 崩溃发生在应用启动后60秒内 Android上的应用崩溃,有近 50% 是发生在启动应用运行的前60秒,使用优测等云测试平台对应用进行适配测试,主路径覆盖,可以在应用发布前发现一半的应用崩溃问题...17.非法参数异常是 Objective - C 代码最常出现的错误 iOS应用崩溃中,非法参数异常是 Objective - C 代码最常出现的错误,所以平时在写代码的时候,需要多加注意传参的检查,避免传入非法参数导致异常

    1.7K60

    又一巨头放弃 Java ,拥抱 Kotlin !

    以及领域特定语言 (DSL) / 类型安全构建器等。...截至目前,Facebook、Messenger 和 Instagram 的 Android 应用程序都有超过 100 万行 Kotlin 代码,并且转换率正在提高。...Meta 的 Android 代码库总共已包含有超过 1000 万行的 Kotlin 代码。作为此次迁移的一部分,Meta 透露其也正在开源用于操作 Kotlin 代码的各种示例和实用程序。...platform types 会导致运行时空指针取消引用,从而导致崩溃,破坏了纯 Kotlin 代码提供的静态安全优势。...我们的代码库中已经有超过 1000 万行 Kotlin 代码,而且 Meta 的大多数 Android 开发人员现在都在编写 Kotlin 代码”。平均而言,此次迁移使代码行数减少了 11%。

    72130

    使用WebRTC开发Android Messenger:第1部分

    layer_info_it->second[temporal_idx] = frame->id.picture_id; 代码的最后一行是发生越界时写入的地方,因为该数组仅包含五个元素。...我不确定现在要进行什么操作,所以我在Android上触发了数十次CVE-2020-6389,以查看是否存在超过16位宽的地址崩溃,希望它们能为我提供一些方法在除了覆盖无效的16位值的指针之外,此错误可能会影响代码的行为...令我惊讶的是,它崩溃了,而且指令指针设置为一个值,该值显然已从堆中读取了大约20次。 分析崩溃后,结果发现在溢出区域之后分配了一个StunMessage对象。...同样地,被攻击的应用程序的崩溃行为也很重要。这可能可以适用于在崩溃的情况下立即重生的应用程序,但是对于停止重生的应用程序实用性却要差很多,除非存在一定的延迟,而这在Android上很常见。...但是,大多数传出数据包都是在堆栈上生成的,因此无法使用堆损坏BUG对其进行更改。 我还考虑过使用崩溃Oracle来破解ASLR,但我认为使用这些特定的错误不太可能成功。

    68220
    领券