Articles of 性能

快速滚动自定义拇指

如何在listview中设置自定义拇指以快速滚动。

在Android上解析~1 MB JSON非常慢

我的资产文件夹中存储了大约1MB的JSON文件,每次运行时我都需要在我的应用程序中加载。 我发现内置的JSON解析器(org.json)非常缓慢地解析文件,但是一旦解析了,我就可以非常快速地访问和操作数据。 从我点击应用程序到Activity1启动的那一刻,我已经计算了多达7或8秒,但从Activity1到Activity2只需几毫秒,这取决于从加载的数据处理的数据活动1。 我正在将文件读入内存并使用以下方法解析它: String jsonString = readFileToMemory(myFilename) JSONArray array = new JSONArray(jsonString); 其中readFileToMemory(String)如下所示: private String readFileToMemory(String filename) { StringBuilder data = new StringBuilder(); BufferedReader reader = null; try { InputStream stream = myContext.getAssets().open(filename); reader = new BufferedReader(new InputStreamReader(stream, “UTF-8”)); int result = 0; do { char[] chunk = new char[512]; result = reader.read(chunk); data.append(chunk); […]

Android – 即使没有在适配器的getView方法中进行任何处理,带有图像的ListView也会滚动得太慢

我正在尝试使用Listview / customadapter创建人员列表。 行显示得非常快,但即使在速度相当快的设备上滚动也很慢。 我尝试了几个建议,除了使用asynchtask希望将其作为最后的手段,但似乎没有任何改善性能。 最后作为使用asynchtask之前的最后一个镜头,我试图删除适配器的getview方法中的所有处理。 现在它所做的就是从xml中扩展视图并显示空白行。 我注意到即使这样,滚动速度也没有提高。 所以我怀疑原因可能是我的布局结构。 我能做些什么改变才能让它更快? 任何帮助,将不胜感激。 提前致谢。

在android中处理性能

我想知道Android中处理草图的表现如何。 以下是有关Processing-Android的更多信息的链接: http : //wiki.processing.org/w/Android#Instructions 我真的不知道在Android中处理哪个级别以及它是如何实现的。 这就是为什么我想知道嵌入在Android应用程序中的Processing草图与Android API的普通Canvas相比有什么性能。 处理让我们创建相对容易的程序,如果性能良好,我相信我们可以节省大量时间用Processing绘制我们的应用程序的某些东西(或者至少像我这样的初学者,Processing的语言似乎比在android中使用的Java,我们可以轻松调用绘图function等…) 所以我希望得到您的意见,而处理草图可以像直接使用Android Java API一样高效(在性能/优化方面)? 谢谢

Android静态类vs非静态类内存性能

我创建了一个静态的类,这个类不会持久化状态(不保留上下文或任何variables)只是一个函数列表。 但是这个类在应用程序中并没有被使用,所以我决定让类可以实例化。 为什么? 因为我认为可实例化的类会占用更少的内存,因为它在整个应用程序生命周期中都不可用。 这是正确的吗? 静态类比非静态类使用更多内存? 谢谢

android中的Edittext Validation错误消息?

在我的应用程序中,我通常显示validation错误消息,如下所示: if(someString.equals(“”)){ editText.setError(“UserName Should not be blank”); } 还有其他方法来显示错误消息吗? 我需要你的建议

Android MotionEvent ACTION_MOVE效率。 如何提高性能?

我目前正在开发一个允许自由绘图的应用程序。 我目前使用的方法如下: currentLine是一个列表,用于保存ACTION_MOVE返回的所有点的历史记录。 public boolean onTouchEvent (MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_MOVE: Point p = new Point(event.getX(),event.getY()); currentLine.addPoint(p); invalidate(); break; } return true; } 然后我接受这些点并在我class级的onDraw方法中绘制它们。 @Override protected void onDraw(Canvas c) { super.onDraw(c); //Draw Background Color c.drawColor(Color.BLUE); //Setup Paint Paint p = new Paint(); p.setStyle(Style.FILL); p.setColor(COLOR.WHITE); //iterate through points if(currentLine.size()>0){ for(int x = 0;x<currentLine.size();x++){ […]

如何在android中测试执行时序的function?

我被困在我的一个function需要一些时间来执行的地方。 我使用对象模型和ArrayList(s)在对象中有一个对象层次结构。 我只想知道调试代码的技术,以检查代码的哪个语句在执行时花费时间。

Android模拟器替代方案

我是Android开发的新手,但我刚买了一个HTC Hero,想为它开发一些应用程序。 但是,我使用笔记本电脑作为我的开发机器,模拟器非常慢。 启动大约需要10-15分钟,虽然我可以继续启动,但在使用其他应用程序(如Web浏览器/ E​​clipse IDE等)时通常会降低系统速度。为Android开发的最佳方法是什么电话? 我可以直接插入HTC并不断加载新的APK,但这似乎太长了一个测试微小变化的过程。 有没有其他方法可用于调试应用程序,或者我必须勇敢地模拟器直到我可以获得新系统? 谢谢

由于许多叠加,Android地图性能很差?

我的android应用程序中有一个地图,显示了许多标记(~20-50)。 但是当我尝试滚动/缩放时,应用程序表现非常差(在谷歌Android地图中我搜索了披萨的样本,并且还发现了大约20-50个结果,并且在缩放/滚动时我没有注意到任何特定的性能问题地图)。 这是我的(伪)代码: onCreate() { …. drawable = this.getResources().getDrawable(R.drawable.marker1); itemizedOverlay = new MyItemizedOverlay(drawable,mapView); … callWebServiceToRetrieveData(); createMarkers(); } createMarkers(){ for(elem:bigList){ GeoPoint geoPoint = new GeoPoint((int)(elem.getLat()*1000000), (int) (elem.getLon()*1000000)); OverlayItem overlayItem = new OverlayItem(geoPoint, elem.getName(), elem.getData()); itemizedOverlay.addOverlay(overlayItem); mapOverlays.add(itemizedOverlay); } mapView.invalidate(); } MyItemizedOverlay.addOverlay看起来像这样: public void addOverlay(OverlayItem overlay) { m_overlays.add(overlay); populate(); }