Articles of 性能

我的cordova webview应用程序比在同一部手机上的Android浏览器中慢得多

我用ionicframework和cordova构建了一个Android应用程序。 但是,当我尝试在我的三星Galaxy S4上运行时,该应用程序的速度比我手机的网络浏览器中的相同代码要慢。 我怎么能期望有相同的性能? 我试过了 : android:hardwareAccelerated=”true” this.appView.getSettings().setRenderPriority(RenderPriority.HIGH); this.appView.getSettings().setPluginState(android.webkit.WebSettings.PluginState.ON_DEMAND); 最后的3.6个cordova版本 我怎样才能拥有我在手机浏览器上看到的相同性能(例如,支持元应用程序)?

Android模拟器的性能与实际设备性能相比如何?

我正在考虑编写一款Android游戏,我很难掌握Android设备。 对于那些拥有设备的人来说,仿真器的性能如何与实际设备性能相关? 我对图形相关的任务特别感兴趣。 这显然取决于运行模拟器的机器和相关的特定设备,但我在这里谈论粗略的数字。 这个问题是重复的 ,但由于那个post已经过时了,我觉得它现在已经无关紧要了。

lockCanvas()真的很慢

在较慢的设备上测试我的游戏(Orange旧金山又名中兴Blade),我的帧速率令人震惊。 我将一些调试代码放入绘制循环中,发现以下行占用了100ms: c = mSurfaceHolder.lockCanvas(); 其他人看到过这种行为? 我通过扩展View并实现onDraw()暂时替换了surfaceview,并且我得到了更好的帧率。 虽然一般来说,SurfaceView在我的HTC Desire上要快得多。 我怀疑这可能是一个Android 2.1问题。 如果可能的话,我正在考虑生根并将其升级到2.2,但我确实想要在2.1上运行设备,这样从长远来看可能会适得其反。 **更新** 我一直在研究这个问题,并且发现了一些令人费解的方面。 我根据手机安装了2.2并且问题仍然存在。 当应用程序首次启动时,lockCanvas按预期工作(0-1毫秒)。 然后在初始化期间的某个时刻,lockCanvas突然开始大约需要100ms。 值得指出的是,我正在异步任务中加载我的资产,以便我可以显示加载屏幕。 尽管我尽力确定程序在发生缓慢时实际正在做什么,但我无法做到这一点。 事实上,当我在调试模式和单步操作时,它运行得很快! 现在我发现如果我在SurfaceView的构造函数中添加一个延迟(大约10秒),则不会发生缓慢而且一切正常。 但是,如果您按Home键然后再切换回来,则缓慢返回。 对于这个愚蠢的不合逻辑的问题,我几乎已经到了最后! 我有心思把它归结为设备特定的问题。 我觉得它可能与内存使用有关。 也许有些东西被换掉了,它会影响video内存? 我至少对理论很感兴趣。

android:gson性能

我试图使用gson在android模拟器上进行我的对象映射。 处理大约208 kb的json数据时,它的速度非常慢。 我的json中没有任何层次结构。 完成对象映射后,我可以看到gson创建了大约500条记录。 在android模拟器上花了超过3分钟来映射输入json。 我注释了我的实体,包括字符串和几个浮点数。 我错过了什么? 任何想法,最佳实践都会有很大帮助。 有没有快速对象映射json数据的方法? URL myURL = new URL(url); /* Open a connection to that URL. */ URLConnection ucon = myURL.openConnection(); /* * Define InputStreams to read from the URLConnection. */ InputStream is = ucon.getInputStream(); InputStreamReader reader = new InputStreamReader(is); long tickCount = System.currentTimeMillis(); Policy[] policies = new Gson().fromJson(reader, […]

在Android中,哪种嵌套布局顺序最有效

我认为我在Android中实际上没有嵌套超过三级的Layouts( RelativeLayout , LinearLayout , FrameLayout )。 我不是在考虑列表项,它们也使用ListView的自定义布局,而只是活动的常规布局。 尽管如此,我正在与另一位开发人员聊聊我们正在讨论的某个布局的嵌套布局,他似乎认为即使是一些嵌套布局也会降低性能。 我认为有一些事实,但它不能那么多。 有没有人对此有更专业的方法? 任何输入? 意见? 谢谢。 对于那些在Google上find的人的更新:下面的第一个答案是一个很好的资源。 它看起来很多,人们似乎跳过这样的答案,但请检查出来。 非常有价值。

在Android中获取onTouch ACTION_MOVE事件的速度

这应该是一件非常简单的事情。 用户将手指放在屏幕上并将其拖到屏幕上。 onTouch上有两个事件触发: MotionEvent.ACTION_DOWN MotionEvent.ACTION_MOVE 现在,我如何计算ACTION_MOVE手势的速度? 用户在手势期间更慢或更快地拖动手指,因此我认为我需要计算两个中间触摸点之间的速度:lastTouchedPointX,lastTouchedPointY和event.getX(),event.getY()。 有没有人这样做过?

为什么显示一些标签时Xamarin.Forms这么慢(特别是在Android上)?

我们正在尝试使用Xamarin.Forms发布一些高效的应用程序,但我们的主要问题之一是按钮按下和显示内容之间的总体缓慢。 经过一些实验,我们发现即使是一个包含40个标签的简单ContentPage需要超过100毫秒才能显示出来: public static class App { public static DateTime StartTime; public static Page GetMainPage() { return new NavigationPage(new StartPage()); } } public class StartPage : ContentPage { public StartPage() { Content = new Button { Text = “Start”, Command = new Command(o => { App.StartTime = DateTime.Now; Navigation.PushAsync(new StopPage()); }), }; } } public […]

Recycler视图 – 滚动时调整项目视图的大小(对于旋转木马效果)

我需要创建一个垂直的Recyclerview,其中应调整屏幕中心的项目视图,以便在滚动时具有缩放效果。 我尝试但没有奏效的事情: 添加滚动侦听器并按位置循环浏览项目视图,测量居中位置,然后更新居中view LayoutParams 。 RecyclerView不会在滚动时计算项目的位置或更新视图。 如果在onScrolled中执行此类操作,则抛出IllegalStateException 在滚动状态下更改onScrollStateChanged中居中项目视图的LayoutParams是IDLE或SETTLING 。 仅在滚动已经/将要完成之后才更新视图,而不是在滚动项目期间执行。 剩下的最后一个选项是实现自定义的LayoutManager ,它将扩展默认的LayoutManager 。 据我所知,实现自定义Layoutmanager涉及处理需要处理的更复杂的计算。 任何其他解决方案或想法将不胜感激。

android – strings.xml vs static constants

这就是我的想法: strings.xml上的字符串应该用于要使用的布局(xml)。 静态常量用于代码(.java)。 谈到最佳实践,我想知道哪些应该使用。 如果你有很多字符串,它会有性能影响吗? getString(…) vs MyConstants.THIS_IS_A_CONSTANT

React本机android转换真的很慢

我的反应原生过渡(使用导航器)非常慢,当animation首次启动时,将javascript线程帧丢弃为0秒,然后拾取到~20,然后暂停中途,然后通常相对平滑地完成。 我正在测试干净的Galaxy Note 4,所以它不是模拟器问题。 我使用InteractionManager.runAfterInteractions呈现空视图,然后在animation完成后呈现5元素列表视图。 我已经编译了生产应用程序并关闭了开发模式。 这是预期/事物的当前状态(希望改进),还是我可能做错了什么? 如果是这样,最好的方法是什么? 我的逻辑运行很少。 如果没有简单的解决方案,有没有办法在导航器转换上禁用animation?