Android 开发推荐

在互联网迅速发展的今天,程序员真的有点烂大街了,最近频繁听到朋友都工做了,又去转行作开发的,去培训机构培训而后出来长时间找不到工做的。各类跨专业、工做后转型。互联网行业竞争愈来愈激烈的今天,高效的快速开发,稳固的基础才是从中取胜的关键。今天向Android开发者推荐一些开发的插件及其一些开发的技巧,只是我的的一些愚见,但愿对你有所帮助。java

代码的规范

代码的规范对于一个程序员的长远发展是至关重要的,android的代码规范其实和java是基本上同样的,这里推荐阿里巴巴java开发手册,阿里还在不断更新完善,感谢阿里为业内人士作的巨大贡献,这一小步,影响很大。若是全部人都按照这个规范,当你接手别人的项目的时候还在为这个代码块是干什么的,项目的迭代去抓耳挠腮吗???android

Android高效开发工具推荐

Android Studio 自动生成布局代码插件LayoutCreator

说到这里,不少人应该都会比较熟悉JakeWharton大神贡献的butterknife,相似的依赖注入还有androidannotationsDagger 2,可是用这些真的好吗???实际上是很影响性能的,这里以butterknife的源码来分析ios

ButterKnife.bind过程git

源码看进去程序员

static void bind(@NonNull Object target, @NonNull Object source, @NonNull Finder finder) {
 Class<?> targetClass = target.getClass();
 try {
   ViewBinder<Object> viewBinder = findViewBinderForClass(targetClass);
   viewBinder.bind(finder, target, source);
 } catch (Exception e) {
   //省略异常处理
 }
}复制代码

再来看看另一个方法github

private static ViewBinder<Object> findViewBinderForClass(Class<?> cls)
   throws IllegalAccessException, InstantiationException {
 ViewBinder<Object> viewBinder = BINDERS.get(cls);
 //先找缓存
 if (viewBinder != null) {
   return viewBinder;
 }
 //检查下是否支持这个类
 String clsName = cls.getName();
 if (clsName.startsWith("android.") || clsName.startsWith("java.")) {
   return NOP_VIEW_BINDER;
 }
 try {
   //找到类名为 Activity 的类名加 "$$ViewBinder" 的类,实例化,并返回
   Class<?> viewBindingClass = Class.forName(clsName + "$$ViewBinder");
   //noinspection unchecked
   viewBinder = (ViewBinder<Object>) viewBindingClass.newInstance();
 } catch (ClassNotFoundException e) {
   //注意这里支持了继承关系
   viewBinder = findViewBinderForClass(cls.getSuperclass());
 }
 //缓存 viewBinder
 BINDERS.put(cls, viewBinder);
 return viewBinder;
}复制代码

看完源码ButterKnife对性能有必定的影响,而且引入了更多的类和方法,增长了安装包的大小。可是,对开发效率的提高也是显而易见的,尤为是配合AS插件的使用。如何取舍,彻底是由做为开发者的你来决定了。其余的几个注入的第三方库相似的,因此在这里为了避免影响性能,又避免写findViewById,所以推荐LayoutCreator算法

  • 安装数据库

    方式一. 下载项目中的jar包,经过本地disk方式导入json

    方式二. 在Android Studio的插件中心搜索LayoutCreator下载安装android-studio

用法截图

image
image

Android Code Generator根据布局文件快速生成对应的Activity,Fragment,Adapter,Menu。

有了上面的LayoutCreator神器,再加上这个神器,估计差很少省去了不少coding的时间了,是否是感受终于有时间腾出来谈个女友了呀!!!祝没有女友的攻城狮们早日找到女友。。。

  • 安装

    方式一. 下载项目中的jar包,经过本地disk方式导入

    方式二. Preferences/Settings->Plugins->Browse repositories... 而后在搜索框输入Android code Generator。

用法截图

image
image

插件GsonFormat快速实现JavaBean

还在为返回JSONObject格式的字符串而一个一个对着写参数吗???GsonFormat一个根据JSONObject格式的字符串,自动生成实体类参数。 之后写实体类就是秒秒钟的事!!!

  • 安装

    方式一. 下载GsonFormat.jar包,经过本地disk方式导入

    方式二. Android studio File->Settings..->Plugins–>Browse repositores..搜索GsonFormat,安装插件,重启android studio

用法截图

gsonFormat.gif
gsonFormat.gif

其余插件推荐

安装方式都有两种,能够参考上面进行安装

SelectorChapek

设计师给咱们提供好了各类资源,每一个按钮都要写一个selector是否是很麻烦?这么这个插件就为解决这个问题而生,你只须要作的是告诉设计师们按照规范命名就行了,其余一键搞定。

LeakCanary

强烈推荐,帮助你在开发阶段方便的检测出内存泄露的问题,使用起来更简单方便。

Genymotion

强大的让全部人都认识

Android Parcelable code generator

在类中插入实现了Parcelable接口的代码。

Android Material Design Icon Generator

将Material Design的图标导入到程序中。

Android Drawable Importer

这是一个很是强大的图片导入插件。它导入Android图标与Material图标的Drawable ,批量导入Drawable ,多源导入Drawable(即导入某张图片各类dpi对应的图片)

Android studio的插件还有不少不少,选择一些经常使用的,别装太多插件哦,要是你想要什么功能的插件可留言,我为你推荐

经常使用开源库

Android是开源的,所以也诞生了一批又一批的开源大牛,而后这些大牛写了牛逼的开源库,让咱们今天的工做更简单,在这里想你们介绍一些经常使用的开源库

网络请求

okhttp
okhttp相关延伸:Fast-Android-NetworkingokhttputilsNoHttp

retrofit 这是一个很高深的网络请求,基于okhttp

如今主流的是这两个,还有volley、xutil等就不在介绍了

数据解析

gson

fastjson

照片加载

glide

fresco

picasso

数据库

greenDAO

ormlite

LitePal

realm-java

刷新控件

参考刷新加载控件

事件总线

其实为我的不建议使用事件总线,由于代码逻辑不清楚,后期迭代维护麻烦;观察者独有的,观察者可能会形成接口的膨胀

EventBus

圆角

CircleImageView

图表

MPAndroidChart

SmallChart

WilliamChart

hellocharts-android

ImageVie手势操做

PhotoView

PinchImageView

照片选择器

TakePhoto

PhotoPicker

MultiImageSelector

loading框

AVLoadingIndicatorView

Android-SpinKit

LoadingDrawable

LoadingView

自定义对话框

sweet-alert-dialog

dialogplus

MaterialDialog

material-dialogs

媒体播放器

  • 视频

JieCaoVideoPlayer

ExoPlayer

PLDroidPlayer

GSYVideoPlayer

  • 音频

android-UniversalMusicPlayer

Timber

  • 直播

SmarterStreaming

其余推荐

RxJava

RxAndroid

AndroidSwipeLayout别人讨厌各类仿ios什么效果,程序员能够写着玩玩没问题。仿iOS各类左右滑效果

circular-progress-button带进度显示的Button,让操做更炫酷

ToggleButton状态切换的 Button,相似 iOS,用 View 实现

AndPermission权限管理

AndroidUtilCode工具类大集合

代码撰写注意点

xml布局

  • 注意事项

    • 避免黄色警告

    • 过期方法不要用

    • include的使用

    • merge的使用

    • viewstub的使用

    • 避免布局嵌套过深;简单布局linearlayout,复杂布局relativelayout;有些效果多考虑自定义view是否能实现,别用view叠加实现

    • style的使用,减小代码量

    • weight的合理使用

    • margain和padding合理比较进行选择使用

    • 最新的布局方式ConstaintLayout的使用

    • 避免没必要要的渲染,可借助第三方工具

java代码

  • 注意事项

    • 为了提升UE,需考虑缓存、数据存储优化、算法优化、JNI、逻辑优化、需求优化(后面会详细述说优化相关)

    • 代码结果清晰,多方法,避免一个方法执行不少行代码

    • 避免警告;多作异常处理;判断条件多考虑

资源管理

  • 注意事项

    • AndroidStudio的lint清除无用的资源

    • 注意第三方引入的资源删除时需注意(典型:某盟)

重点推荐:多coding,多看底层,知其然知其因此然

我的博客

相关文章
相关标签/搜索