`
文章列表
         Making ListView Scrolling Smooth           让ListView平滑滚动的关键在于将程序的主线程(UI线程)从大量的处理中解脱出来。要要保证用单独的线程来进行磁盘,网络或SQL操作。想要测试你的程序的状态, 你可以开启StrictMode。           Use a Background Thread          使用后台线程(“工作线程”)可移除主线程中的压力,这样可以使得UI线程可以专注于描绘UI。大多数时候,AsycnTask实现了一种简单的把需要做的事情与main thread分离的方法。AsyncTas ...
Improving Layout Performance(三)   Loading Views On Demand           有时你的布局可能需要一些复杂却又很少被用到的视图。无论他们是item详情、进度指示器,或撤销的消息,你都可以在需要时加载这些视图,来减少内存使用量并加快渲染速度。             Define a ViewStub         ViewStub是一个没有尺寸大小并且不会在布局中嵌套或渲染任何东西的轻量级的视图。因此在视图层次展现或隐藏它的代价非常小。每一个ViewStub仅仅需要包含android:layout属性来展现指定的布局。 ...
Improving Layout Performance(二) 本文出处:http://developer.android.com/training/improving-layouts/reusing-layouts.html            Re-using Layouts with <include/>         为了提高你的Layouts的复用性,你也可以使用<include/> 和 <merge/> 标签内嵌一个布局到另一个布局里。         布局重用是十分强大的,能让你产生可重用的复杂布局。例如,一个 yes/no按钮面 ...
          Layouts是Android应用里直接影响用户体验的一个关键部分。如果Layout设计的不好,可能导致你的应用大量的内存占用从而导致UI响应很慢。Android SDK提供了工具帮助你分析你的Layouts的性能问题。结合这个工具同时查看本文,你能实现滑动流畅、占用内存最小的用户界面。           Optimizing Layout Hierarchies          一个复杂的web页面可能需要很长的时间才能加载出来,同样的,你的Layout层次如果太复杂也可能引起性能问题。在这课里你讲看到通过SDK工具怎么样发现你的Layout的问题和性能瓶颈 ...
                文章出处:http://developer.android.com/training/articles/perf-tips.html#Myths           本文列出的优化技巧主要是一些微小的性能提升,可能不会给你的程序性能改善产生显著的效果。决定程序整体性能的仍然取决于程序的业务逻辑设计、代码的数据结构和算法,这超出了本文的范围。你需要将这些优化技巧应用到平时的编码过程中,积少成多,也会对性能有很大的影响。        下面是写高效代码的两个基本原则:        1.不要写不需要的代码;        2.不要分配不必要的内存。 ...
管理你的app内存          文章出处:http://developer.android.com/training/articles/memory.html#YourApp           Random-access memory(RAM)在任何软件开发环境都是稀有资源,在移动操作系统物理内存有限的情况下将显得更加珍贵.虽然Android的Dalvik虚拟机优化了内存回收机制,但我们也要关注你的app的内存分配合和释放         为了垃圾回收器能回收你系统的内存,你应该避免引起内存泄露(通常由全局成员hold了对象引用),而且要在合适的时间点(如生命周期回调时,这 ...
一、target SDK version     Android Runtime和Dalvik会根据target SDK version决定是否工作在『兼容模式』下,所谓兼容模式,就是关闭了新版本中各种新机制和体验优化的状态。targetSdkVersion如果设置很低,就等于是关闭了所有高版本的新特性和机制,包括『屏幕自适应』、『硬件加速』。 为了保证各个版本的兼容性,及时使用到新特性,targetSdkVersion因随Android最新版本的发布而持续提高,以保证在各个Android版本的设备上都能获得完整的体验。 Not targeting the latest version ...
    在项目时,遇到这样一个问题:从启动页(StartActivity)到APP的主页(MainActivity)时,调用的StartActivit的finish方法,并且MainActivity方法的onResume方法也很快执行了,但页面还是停留在启动页,半天才能跳到主页。     打日志找了半天原因,发现,原来调用Activity的finish()方法后,并没有即执行onDestory方法,查找半天原因后发现,StartActivity里有个handler:   1.调用Activity的finish方法时     Handler对Activity finish影响。     ...
1.不要在UI线程里调用getReadableDatabase ()或者getWritableDatabase ()方法     参见androidAPI文档如下:     Create a helper object to create, open, and/or manage a database. This method always returns very quickly. The database is not actually created or opened until one of getWritableDatabase() or getReadableDatabas ...
   1.利用android提高的的insert,query,update,deleteAPI与execSql,rawQuery函数执行原生的插入,查询,更新,删除语句操作花费时间的对比结果     在相同的环境(adnroid4.0)和相同的机器下执行相同的动作,记录条数也一样的情况下的对比,多次验证的如下:     (1)如果批量执行的记录数在1000条,则Android SqliteDatabase提供的insert,query,update,delete函数和直接写SQL文的execSql,rawQuery的效率差不多,几乎一样。所以使用哪种方式都可以,不会影响到执行效率。   ...
    在做项目时,遇到Fragment与Fragment、Fragment与Activity需要相互通信、传递数据以及进行互   操作的问题,查阅了官方文档,也实现了官方的例子,但实际项目是ViewPager+Fragment,按官方的例   子,总是获取不到Fragment的引用,如:   HeadLinesFragment headLinesFrag = (HeadLinesFragment)         getSupportFragmentManager().findFragmentById(R.id.headline_fragment);       这是因为 ...
        在开发java工程时,一个大的项目可能分为多个模块,为了实现模块间的解耦和独立,提高模块的复用性,通常将该项目按模块分为多个java工程进行开发,最后通过jar包等工程依赖的方式实现系统集成,提高模块的解耦和复用。         现在开发android项目,通过实践开发的总结,发现这种方式特别有必要。比如,开发一个android端视频应用,肯定有播放和下载模块,之前放在一个工程里,不断添加新的功能,产品里的每一个研发都不断改动和添加功能,最后维护越来越难,bug越来越多,并相互推诿。这种方式能避免这种情况,此为第一优点。         其二,下载模块是很多app都会用 ...
      做项目中经常会遇到ScrollView包含GridView或者ListView的问题,这其中一定会遇到两个问题:   1.GridVIew或者ListVIew内容显示不全的问题   解决方案:  自定义GridView或者ListView,并重写其onMeasure方法,并在布局问题中使用自定义的GridView:   import android.content.Context; import android.util.AttributeSet; import android.widget.GridView;   public class MyGridVi ...
Android:android:listSelector="#00000000" 与 android:listSelector="@null"之区别      当用gridview或者ListView控件时,会用到设置android:listSelectors属性,例如下:         <com.xhmj.main.active.MyGridView                          android:gravity="center"                          android: ...

android之WebView

1.为什么请求一个网页第一次能用webview展示正常,再次进入该页面就不能正常展示了?        最近做项目时,遇到这样一个问题:用webview展示动态网页时,第一次请求该页面用webview能正常展示,再次点击进入该页面就提示加载失败,不能正常展示了(网页中静态页面部分能展示,动态页面就加载失败了)。或者等一段时间后再次点击才又可以正常展示,当展示静态的html页面就没有问题。        后来发现原来是缓存的原因,设置:         WebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);     ...
Global site tag (gtag.js) - Google Analytics