安卓开发框架怎么搭建(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 相关接口和实现类,避免了手动创建多个类的繁琐事项,开发文档写的非常精细。
开始学习吧!
其他文章
- 松下打印机怎么用(松下打印机安装驱动教程)
- 三星s10e参数配置(关于三星s10e手机测评)
- tft和oled屏幕哪个好(屏幕tft和oled的不同之处)
- 笔记本电池校准软件(校准笔记本电池的方法)
- ips面板是什么意思(屏幕面板类型介绍)
- 快用苹果助手怎么用(爱思助手ios版手机安装)
- 当当网开店流程及费用标准是什么(详解当当网入驻条件)
- 淘宝店铺如何群发短信给客户(淘宝批量发短信给客户的流程)
- 如何在ppt中加入flash文件(ppt做flash动画制作教程)
- xp怎么设置定时关机(电脑设置定时关机的方法)
- fbx是什么文件格式(fbx格式打开的方式)
- 小智淘宝店有哪些商品(淘宝电脑店铺推荐)
- 半导体分立器件是什么意思(有关半导体行业细分领域)
- 华为poe交换机怎么配置(新手配置交换机详细教程)
- 阿里旺旺卖家版常用的功能插件(卖家精灵插件安装教程)
- 变频恒压供水常见故障(变频器的使用方法及参数调整)
- u盘被写保护无法格式化怎么办(最简单的去掉u盘写保护)
- 自动生成视频的软件有哪些(ai全自动视频生成器)
- 电机防爆等级怎么表示(电机防爆标志字母含义)
- 照片像素调整大小软件(照片大小调整软件推荐)
- 虚拟wifi怎么设置(虚拟路由器的设置方法步骤)
- 如何查看网站的ip地址(查询IP地址的三种简单方法)
- 室外温度传感器在哪里(采暖温度传感器图片了解)
- 怎么制作文件夹(简单好用的文件夹创建工具)
- 电脑虚拟声卡软件有哪些(简单好用的变声软件推荐)
- 网站不能复制粘贴怎么办(网页文本无法复制的处理)
- 导电滑环寿命多久(导电滑环安装方式及使用时间)
- 笔记本温度测试软件哪个好(电脑温度监控小工具推荐)
- 显示器色域怎么看(分享显示器色彩最佳参数)
- 在线修改图片大小工具(修改照片像素和尺寸的软件)