安卓开发框架怎么搭建(Android环境配置)
近两年,Android 开发可以说是越来越容易了,在很多前辈的努力下,Android 开发生态圈里构建出了很多非常好的轮子(开发库或框架)。在开发中,有时都面对这么多轮子都有选择困难症了。面对炫彩的开发库和很流行的框架,我们该如何选择呢?
1、GitHub Star 数判断标准,GitHub Star 数越多,证明这个轮子使用的人数比较多,一般以 1 k 起为判断标准;
如图,搜索 “Android” ,选择排序为 “Most Stars”,这样搜索结果就会按照 Star 数最多的排在首页。
2、综合分析项目,整体考虑。从项目应用场景、开发人员、公司情况、项目后期维护等方面分析,选择合适项目的开发框架或开发库是最好的选择,不要认为哪个开发框架流行用哪个,项目开发中稳定是大前提;
3、仔细查看开源框架源码,多看开源框架的 Issues,从 Issues 提前预判框架在项目开发中可能会出现的问题,慎重选择每一个开源框架,是一个程序员应该必备的精神。
在 Android 开发中,一般都是从以上3个方面选择开源框架搭建Android 项目。Android 项目开发中,开源框架一般可以分为网络、组件以及其它工具类组成,下面我分别介绍几个比较优秀的开源框架。
1、网络框架
常用的 Android 开发网络请求库有
Retrofit https://github.com/square/retrofit
OkHttp https://github.com/square/okhttp
Volley https://github.com/google/volley
目前用的最多的也就 Retrofit 和 OkHttp ,Volley 基本上是很少有人用吧,前两个都是 Square 公司开源的,很厉害吧!Volley 是Google 早年开源的,目前基本被淘汰。
这里简单介绍下 Retrofit
Retrofit 是一个RESTful 的 HTTP 网络请求框架的封装,网络请求的工作本质上是 OkHttp 完成,而Retrofit 仅负责网络请求接口的封装。
示例如下:
(1)、创建一个接口
public interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user); }(2)、实现接口
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .build(); GitHubService service = retrofit.create(GitHubService.class);
(3)、调用
如需详细了解 Retrofit ,请访问
https://square.github.io/retrofit/,这里有非常详细的开发文档。
2、组件库
Android 开发的组件库有很多,如 BasePopup、RxUI、SmartRefreshLayout等
BasePopup:
https://github.com/razerdp/BasePopup,是一款针对系统PopupWindow优化的Popup库,功能强大,支持背景模糊,常用在应用中弹框场景。
RxUI:RxUI 是 RxTool 下的一个分支, RxTool 是 Android 开发过程经常需要用到各式各样的工具类集合。很强,试试呗
https://github.com/Tamsiree/RxTool 。
SmartRefreshLayout:Android 开发中必备的下拉刷新、上拉加载库,很好用,目前 Github Star数已有 20k 了,赶紧上手 ,
https://github.com/scwang90/SmartRefreshLayout
3、工具,提升开发效率、维护代码利器
Butter Knife ,俗称黄油刀,Android 开发必备,将 Butter Knife 引入项目,将会节省不少开发时间,避免了开发者 通过多次 findViewById(), 目前最新版本已是 10.2.1 了,这是 GitHub 链接
https://github.com/JakeWharton/butterknife
示例
class ExampleActivity extends Activity { @BindString(R.string.title) String title; @BindDrawable(R.drawable.graphic) Drawable graphic; @BindColor(R.color.red) int red; // int or ColorStateList field @BindDimen(R.dimen.spacer) float spacer; // int (for pixel size) or float (for exact value) field // ... }ViewHolder 里使用
public class MyAdapter extends BaseAdapter { @Override public View getView(int position, View view, ViewGroup parent) { ViewHolder holder; if (view != null) { holder = (ViewHolder) view.getTag(); } else { view = inflater.inflate(R.layout.whatever, parent, false); holder = new ViewHolder(view); view.setTag(holder); } holder.name.setText("John Doe"); // etc... return view; } static class ViewHolder { @BindView(R.id.title) TextView name; @BindView(R.id.job_title) TextView jobTitle; public ViewHolder(View view) { ButterKnife.bind(this, view); } } } @OnClick(R.id.test) public void onViewClick(View view){ } @OnPageChange(R.id.viewPager) public void onPageChange(int position){ }
ARouter ,ARouter 是国内阿里巴巴开源的框架,主要解决项目中耦合严重的问题,有了它,代码耦合问题再也不是难事了,项目中的业务可以根据实际需要分离成多个组件,使用 ARouter 为多个组件间的通信提供了保障。两个字描述,强大,三个字,很强大,详细了解请移步
https://github.com/alibaba/ARouter
Arouter 初始化
if (isDebug()) { // 这两行必须写在init之前,否则这些配置在init过程中将无效 ARouter.openLog(); // 打印日志 ARouter.openDebug(); // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险) } ARouter.init(mApplication); // 尽可能早,推荐在Application中初始化添加 Activity 注解,这里需要注意,填写的路径(path)至少需要两级 如 “/test/activity ” ,不能少一个斜杠,不然会让你很懵逼的到处找错误都找不到。
// 在支持路由的页面上添加注解(必选) // 这里的路径需要注意的是至少需要有两级,/xx/xx @Route(path = "/test/activity") public class YourActivity extend Activity { ... }从开源框架或开源库选择到搭建项目这个过程,会经历痛苦的抉择,选择了 A 开源框架,又选择了 B 开源框架,两个框架从项目的不同角度在协助着项目开发,最终发现两者竟然不兼容,或者大部分功能都是相同的,这就很难选择了......
最后我推荐一个 MVP 开发模式的框架,我认为他是GitHub 上 MVP 开发模式框架中比较优秀的了,让小白也能轻松上手,快速搭建项目,不用考虑项目各类框架选择,作者已经选好了
Android 开发中常用、必用的开发框架。他就是 MVPArms
https://github.com/JessYanCoding/MVPArms。
作者提供了 Android Studio 开发工具插件,一键生成Activity和对应的 MVP 相关接口和实现类,避免了手动创建多个类的繁琐事项,开发文档写的非常精细。
开始学习吧!
其他文章
- 什么是返程投资(返程投资”与VIE架构解析)
- 本钢转债价值分析
- 微信零钱通安全吗(微信零钱通存放3万块安全吗)
- 阳光车险口碑怎么样(阳光车险可靠吗)
- 波场币值多少人民币 trx今日价格行情
- 吉利汽车股票代码是多少
- 信用卡刷卡手续费一般是多少
- 国家扶持的养殖项目 以下这几个前景非常不错
- 2018银元最新价格是多少 银元最新市场价格表一览
- 谢娜为什么退出快乐大本营 原来是为了更好的照顾孩子
- 唯链行情走势图 VET值多少人民币
- 司机乘客险各一万够吗 司机乘客险一万够不够
- 一共有多少个比特币?比特币总共有多少枚解析
- 博士伦和海昌哪个好 隐形眼镜要怎么挑选
- TRX币未来价值如何?TRX币2022年前景分析
- 炒股的人一生穷?炒股暴富不外乎三种人
- 怎么开口借钱成功率高
- 中国珠宝的黄金可靠吗 揭中国珠宝简介!
- 最适合穷人移民的国家 物价低而且吃穿不用愁
- 河马草功效与作用(河马草功效与作用及禁忌)
- 什么是内源融资(内源融资包括哪些内容)
- 什么是交叉弹性(经济学中的“交叉需求弹性”是什么)
- 税制改革是什么
- hk是什么意思
- 清水源股票股吧怎么样(股票市值及消息详解)
- 大学生靠谱的网贷平台?哪些借款平台好
- ok平台怎么打不开了_类似火币的交易平台
- 中国交易比特币平台_zb平台是骗局吗
- 做吃播一天能挣多少钱 收入与什么因素有关
- 唯链币一个等于多少人民币 vet最新消息今日