Android 开发推荐

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

代码的规范

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

Android高效开发工具推荐

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

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

ButterKnife.bind过程

源码看进去

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) {
   //省略异常处理
 }
}复制代码

再来看看另外一个方法

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方式导入

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

用法截图

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

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

  • 安装

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

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

用法截图

image
插件GsonFormat快速实现JavaBean

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

  • 安装

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

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

用法截图

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,多看底层,知其然知其所以然

个人博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值