关于android框架搭建个人的一些认识
来源:互联网 发布:windows常用api 编辑:程序博客网 时间:2024/05/29 16:40
1:首先分析开发需求,清楚其中的操作流程;
2:分析其中涉及到的知识点,并确定需要采用什么样的方式来实现,其中一些难点需要非常注意;
3:ui框架的实现:
如果有ui图,就可以直接照做,没有的话,可以采用最普遍的方式:底部控件导航,viewpager+listview来实现(这个是最基本的了,如果需要设计更为复杂的方式的话,就可以按照这种方式去改进);
4:代码的实现:
(1)为所有的activity写一个基类(baseactivity)其中可以采用标题栏共用,内容栏被采用View.inflate(this, layoutResID, mContentLayout)方式动态添加(此方法在调用setcontentview中作操作:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initViews();
}
super.setContentView(R.layout.activity_abstract_title);
mTitleTextView = (TextView) findViewById(R.id.text_title);
mContentLayout = (FrameLayout) findViewById(R.id.layout_content);
mLeftBackwardbButton = (ImageButton) findViewById(R.id.button_backward);
mRightImg = (ImageView) findViewById(R.id.img_forward);
mLeftBackwardbButton.setOnClickListener(new MyOnclick());
mRightImg_blue=(ImageView)findViewById(R.id.img_blue);
mRightImg.setOnClickListener(new MyOnclick());
mRightImg_blue.setOnClickListener(new MyOnclick());
addActivity();
}
@Override
public void setContentView(int layoutResID){
mContentLayout.removeAllViews();
View.inflate(this, layoutResID, mContentLayout);
onContentChanged();
}
此基类达到了标题栏共用,可以管理activity的添加状态,同时又很多需要共用的方法可以在里面进行实现(通过实现接口的形式)
(2)网络交互采用的方式:
现在的网络框架很多,大部分都很好用,所以在此基础上还是建议大家采用框架去实现网络访问(如果自己去手写代码实现的话,比较繁琐,而且容易出现错误),现在我一般是用的xutils 3.0访问网络请求返回结果,然后用gson对json数据进行解析,然后放入一个实体类中去得到数据的,如果觉得框架中请求还加了多个回调方法,写起来比较繁琐的话,可以对其进行再次封装,按自己要求去实现吧。
(3)数据的保存方式:
一般是本地和网络各保存一份,每次进去的时候获取本地的,如果本地的被干掉之后,就请求网络,如果网络没有,可以再次进行添加,或者弹出提示,对于用户名,密码之类的数据可以选择sharepreference来保存,另外其他的信息选择sqlite进行保存(采用框架来实现比较方便,不必自己写)。
(4) 数据的封装:
对数据库封装一个类进行管理(也许不只一个,这里只是说下便于管理的方式)
对对话框封装一个类进行管理(*)
对网络请求封装一个类进行管理
对文件下载分装一个类进行管理
(5)按需求分析采用不同的架构(例如MVP),不同的设计模式(单例,构造者,桥接,观察着,工厂等等,由于本人对设计模式也不是太清楚,所以这里也不做介绍了),设计所需要的接口或者抽象类来使代码的可扩展性,重用性提升。
(6)需要注意的事项:
注意静态类,属性,方法的使用,如果acticity啥的在被关闭之后还有静态属性拥有它的引用,这样就有可能造成泄露,另外还有一些流没有关闭,或者广播动态注册缺未关闭,也会出现这种情况;然后就是说到优化了,在我们对listview加载数据时候,数据的获取最好是先获取好了再在getview方法中进行加载,不要直接在getview中作复杂而耗时的操作,这样会出现ui卡顿的现象,另外listview中最好设置settag方式来保存view,当listview加载图片时候,就要考虑到内存溢出的情况了,当需要这样实现的时候,可以采用框架的方式来加载最好,因为里面有做很多的优化,比如采用如引用啥的,实现起来很方便,这里就不多说了。
(7)题外话:
一个程序员的思想就是要敢去想,敢去做,当你把一件事情加上自己特有的属性并能够实现的时候,那自然而然的你就是所说的大牛,让我们奋力拼搏吧!
- 关于android框架搭建个人的一些认识
- 关于汇率,个人的一些认识
- Android中关于Task的一些认识
- 关于Android中的Handler的一些认识
- 关于Android Application类的一些认识
- 个人对Web组成的一些认识
- 个人对java的一些发展认识!
- 关于Android原生Email的自己的一些认识
- 个人了解的一些Android网络通信框架的介绍
- Android中关于矩阵(Matrix)前乘后乘的一些认识
- Android中关于矩阵(Matrix)前乘后乘的一些认识
- Android中关于矩阵(Matrix)前乘后乘的一些认识
- Android中关于矩阵(Matrix)前乘后乘的一些认识
- 关于winpcap的一些认识
- 关于AOP的一些认识
- 关于winpcap的一些认识
- 关于BIRT的一些认识
- 关于ARM的一些认识
- 【乐视云学习笔记】关于Letv乐视云点播的视频暂停之后,按home回到桌面后重新onResume回到Activity,视频自动播放的情况
- Java之泛型
- 富文本插件ckeditor和kindeditor
- 关于unity里pbr技术和材质 unity5默认shader和传统的对比
- Linux --rpm 打包
- 关于android框架搭建个人的一些认识
- mybatis generator利用example类的生成配置
- android studio中git和svn添加忽略
- 控制器不被销毁的解决方法
- Making fast, good decisions with the FFTrees R package
- TextView 的隐藏技能
- 时钟初始化
- java,calander,date时间常用方法
- keil MDK 中使用虚拟串口调试串口