安卓引出fragment之后,程序写法发生了变化,新写法写的应用能在旧版本上运行吗

安卓引入fragment之后,程序写法发生了变化,新写法写的应用能在旧版本上运行吗?
本帖最后由 stonefeng 于 2014-07-08 16:52:13 编辑
安卓引入fragment之后,程序写法发生了变化,新写法写的应用能在旧版本上运行吗?
能的话该怎么设置?不能的话有什么解决办法?不至于写两种版本的代码吧?
------解决方案--------------------
在AndroidManifest.xml中定义版本要求,包括最低版本和目标版本。
有些强大又新颖的方法需要API版本在一个固定数值以上的,你用的时候会提示你最低版本过低,解决的办法是提高最低版本。
但有时候为了兼容那些使用低版本API的设备,开发者更愿意换个等价的方法。
------解决方案--------------------
设置向下兼容就可以了。
低版本的代码在高版本是可以运行的,但是高版本的代码在低版本不一定能运行的起来。
比如在2.2上开发,引入必要的support.v4 jar包之后,注意以下几点:

1.activity继承v4包中的FragmentActivity 
2.必须导入v4包中的Fragment
3.如果要使用FragmentManager,必须使用getSupportFragmentManager();

比如:getActivity().getSupportFragmentManager().findFragmentById(R.id.xxx);
------解决方案--------------------
SDK版本是开发工具的版本,
API level对应了android系统的版本,参见
http://baike.baidu.com/link?url=aUjDbjLQjZbH0cbWqBO8h_0vYH25mS6Wb1BZct8W3TzrKoIvJtN79X_auYA0iggRihqPOmjrLrmN4ThxY3PzC_
------解决方案--------------------
引用:
Quote: 引用:

设置向下兼容就可以了。
低版本的代码在高版本是可以运行的,但是高版本的代码在低版本不一定能运行的起来。
比如在2.2上开发,引入必要的support.v4 jar包之后,注意以下几点:

1.activity继承v4包中的FragmentActivity 
2.必须导入v4包中的Fragment
3.如果要使用FragmentManager,必须使用getSupportFragmentManager();

比如:getActivity().getSupportFragmentManager().findFragmentById(R.id.xxx);

谢谢。
support.v4 jar包是不是安卓4版上新增加的功能?然后为了让4版SDK的API在2.2上使用,需要引入新版的包,然后开发过程中注意引用新版的包?
那么这是否意味着在2.2上开发的代码与新版本上的代码是不同的?这样需要同时维护两个版本的代码吗?

你好,哥们。
这个support.v4 ja包是在android3.0之后引入进android的,加入了新的api,这个你可以在官方文档查阅。
3.0后新增api主要有:
一、Fragments 碎片容器
二、Action Bar 活动栏
三、System clipboard系统剪切板
四、拖拽
五、增强的appWidgets
六、增强的状态提示栏
七、内容加载器
八、A2DP蓝牙和耳机控制API
九、动画框架
十、扩展UI框架
新增以下UI控件
  AdapterViewAnimator
  AdapterViewFlipper
  CalendarView
  ListPopupWindow
  NumberPicker
  PopupMenu
  SearchView
  StackView
十一、图形相关
所以要使用以上功能的,在3.0以下版本,都需要引入这个包。
也不存在什么两个版本的代码,首先定义好自己的apk适用于那个版本阶段,比如8 - 19 
其次,上面已经说了,低版本的代码在高版本是兼容的。写代码的时候考虑低版本的兼容,并在低版本模拟器或
手机上测试,没问题就行了,为何一直纠结于两个版本的代码呢?