Android开发网上的一些重要知识点_4

来源:技术人生 责任编辑:栏目编辑 发表时间:2013-07-01 03:05 点击:
41. Splash Screen开场屏在Android中的实现
很多网友可能发现近期Tencent推出的手机QQ Android版包含了一个开场屏Splash Screen载入效果,通常游戏或大型软件打开时可能需要一个释放解析资源的过程,需要一个前台的动画播放和后台的逻辑处理线程配合,当然对于简单的软件也可以加一个Splash Screen作为美化。在Android平台上如何实现呢?
  首先创建一个Activirty,在SetContentView时直接通过ImageView创建一个全屏的图片,Android123提示大家还要考虑好分辨率和当前设备一致,onCreate添加代码如下:
  new Handler().postDelayed(new Runnable(){   // 为了减少代码使用匿名Handler创建一个延时的调用
            public void run() { 
                Intent i = new Intent(SplashScreen.this, Main.class);    //通过Intent打开最终真正的主界面Main这个Activity
                SplashScreen.this.startActivity(i);    //启动Main界面
                SplashScreen.this.finish();    //关闭自己这个开场屏
            } 
        }, 5000);   //5秒,够用了吧
42. Android的Activity你知多少呢?
看到这个标题很多网友肯定回答,我知道Activity是Android上的窗口基类,了解Activity的生命周期比如onCreate onStop等,呵呵,按照这样说Android123还知道Activity的实现其实是从ApplicationContext,而ApplicationContext是从Context这个抽象类派生而来的,当然我们看到显示的是View或者ViewGroup,当然今天说的不是这些东西,而是很多网友来问的Android为什么不设计一个任务管理器,当然从Android 1.5开始ActivityManager类提供了restartPackage可以关闭一个程序,需要加上<uses-permission android:name="android.permission.RESTART_PACKAGES"/>这个权限,不过我们注意到,长按Home键可以看到以前程序的运行,同时可以快速的切换回来。这就是Android独有的程序生命周期管理机制 Activity历史栈。
  我们在一个普通的程序主窗口A中打开了一个窗口B,而窗口B打开了窗口C,但是按下Back键后结果出乎了预期,是的这就是Activity的history stack的原因,在数据结构中栈是FIFO的,阻止我们不愿意看的情况的发生则可以在打开新Activity时加上标记FLAG_ACTIVITY_NO_HISTORY,代码如下:
    Intent i= new Intent(this, cwj.class); 
    i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);   //Android开发网提示大家相关的还有Intent.FLAG_ACTIVITY_CLEAR_TOP,都试试
    startActivity(i); 
  当然更多的程序Activity控制可以再androidmanifest.xml中定义。
43. JSONObject在Android上的应用
如果你过去开发过AJAX应用,相信对JSONObject不会陌生吧,作为基于JavaScript的数据交换格式,可以直接代替Xml,这里Android从1.0开始就完全支持JSONObject。在平时应用中直接引入import org.json.JSONObject;即可方便使用。当然同类的还有SOAP。
  在常规使用方便JSONObject对象可以实现类似Bundle或Parcel可以封装数据,代替一个XML的ITEM,但最大的优势是可以执行一些简单的方法,比如说getString、has、put、getBoolean、getInt等数据类型的存取操作。Android123提示大家对于常规的项目开发,今天本文不考虑Server端的布局,在Android平台上处理这些比较简单,主要是一些http的请求处理。可以直接引入import org.apache.http.xxx来实现web server层的数据交换,如果你没有专业的Server开发技术,可以通过简单的Web配合JSON方式快速实现自己的交互式应用。
44. Android高性能文件类MemoryFile
很多网友抱怨Android处理底层I/O性能不是很理想,如果不想使用NDK则可以通过MemoryFile类实现高性能的文件读写操作。MemoryFile顾名思义就是内存文件的意思,如果你过去从事过Win32开发,那么它的原理就是MapViewOfFile(),当然开发过Linux的网友可能很快就联想到了mmap(),是的该类就是他们的托管代码层封装,位于android.os.MemoryFile这个位置,从Android 1.0开始就被支持。
  MemoryFile适用于哪些地方呢?
  对于I/O需要频繁操作的,主要是和外部存储相关的I/O操作,MemoryFile

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Android 完全退出程序
      • 原创:Android应用开发-Andorid歌词秀,含源码
      • android 屏幕保护
      • Android手机软件汉化教程---第四课 dex文件汉化
      • 众多Android 开源项目推荐,给力工作给力学习
      • Android Audio代码分析4
      • Android得到已安装的应用程序信息!
      • Android开发者指南(29) —— USB Host and Accessory
      • Android成长的幕后推手:工程师鲁宾
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1