Android快速开发框架Android_BaseLib,集成了常用工具类,自定义View控件,Base基类封装,常用开源框架
来源:互联网 发布:安卓超人软件 编辑:程序博客网 时间:2024/05/16 15:27
写博客辛苦了,转载的朋友请注明出处哦:http://blog.csdn.net/finddreams/article/details/41548779
GitHub下载地址:https://github.com/finddreams/Android_BaseLib
Android_BaseLib
这是一个用于Android快速开发的框架,主要是在以往的项目开发中,收集到的常用的功能。集成了很多项目中通用的东西,免去重复造轮子的麻烦,直接下载来了,修改一下就可以做为基础的框架进行开发,提高开发速度,适合当前移动互联网时代敏捷快速开发的节奏。
1.常用到的工具类;
2.BaseActivity,BaseFragment,还有BaseView的封装,以便于对ViewPage中的View进行分别的管理,符合Java的封 装思想。
3.对BaseAdapter进行封装成MyBaseAdapter,引入BaseViewHolder,是个万能的ViewHolder;
4.很多常用的自定义View,CustomToast,SlideButton(滑动按钮),RollViewPager(自动滚动的ViewPage广告)。。。。。
5.加入了很多项目中常用的开源项目,方便使用。比如:
ViewPageIndicator, 导航栏,很多应用中都需要使用到
Pulltorefreshview, 下拉刷新,支持各种ListView已经GridView的下拉
Gson, 谷歌官方的解析json格式的库
fastjson, 阿里巴巴公司出品的解析json格式的库
android-async-http, 异步网络框架
Zxing, 二维码扫描,项目中的名字是core
Universal-image-loader, 强大的异步加载网络图片,防止OOM
xUtils, 国内出名的快速开发框架
nineoldandroids-2.4.0, 在Android2.X上兼容的动画库
volley, 谷歌官方的访问网络的框架
EventBus, 简化Android组件间通信库
Butterknife 依赖注入框架,让你从findViewById中解放出来
(一) 常用的工具类,由于篇幅原因,请见文章的最后详细介绍;
(二) 封装了BaseActivity,BaseFragment,BasePage,对BaseAdapter进行封装,把所有的公共点进行封装,子类只需要继承即可。
(三)万能的ViewHolder 可以省去每次都需要在Adapter类中写一个静态的ViewHolder问题,实现代码的重用性。
(四)集成了很多的自定义View
比如项目常用到的顶部栏,直接封装成了TopBarView,只需要在布局文件中引入即可;
RollViewPager可以自动滚动的ViewPager,带有标题,和用于指示的小圆点。
ProgressWheel自定义的进度条,
CustomToast 自定义的Toast
CircleImageView 圆形的ImageView
SlideButton 左右滑动的滑动开关
ClearEditText 带有删除图标的EditText登录中常用到
ScrollListView 解决ListView嵌套到ScrollView中只显示一行的问题
更多的自定义View控件请下载项目,详细了解,这里就不做过多介绍。。。。。。
(五)CrashHandler
用于异常崩溃处理 当程序发生未捕获异常时,由该类来接管程序并记录发送错误报告。把错误信息保存在sd卡中,然后上传异常信息到服务器,便于程序员对异常的处理。
(六)集成了常用到的开源框架
ViewPageIndicator 常用到滑动导航的开源框架,可以很方便的做到网易新闻客户端Tab标签滑动导航的功能;
Pulltorefreshview 下拉刷新可以说是每个项目中都必须用到的吧,这个自然不用多说;
Gson 可以用于对服务器端返回的json解析,在工具类中可以找到GsonUtil帮助类,解析json非常的方便;
android-async-http 非常成熟的异步请求网络的类,使用起来非常简单,从MyHttpClient中可以看到使用方法;当然你也可以不需要网络框架,自己封装httpclient做成MyHttpClient,不过开源框架毕竟是很成熟了的,可以解决在实际运行过程中的一些未知问题;
Zxing 二维码/条形码识别的框架 项目中如果需要进行二维码的扫描,可以使用此框架,已经集成在项目中,只需要以startActivityForResult的方式调用本项目中的CaptureActivity类即可打开扫描界面,然后在返回结果中获得扫描到的结果;这个CaptureActivity已经实现了扫描成功时的震动和确认声音,提高用户的体验。当然还有从下而上的滑动滚动横杠,如果有特别的需求可以自己修改,比如说加上闪光灯也是个不错的想法。
Universal-image-loader 对于图片的加载怎么少的了这个开源框架呢,全面解决你项目中ListView加载图片的各种问题。
xUtils 很不错的快速开发框架,其中的ViewUtil模块可以省去我们在项目中的各种烦人的findViewById代码,以及setOnclickLister等,属于android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
(一)、集成了项目常用到工具类
1.AppManager 对于项目中Activity的管理,是一个单例的类,其中有一个stack栈来管理Activity,可以在退出的时候实现安全退出;
/** * @Description:这是一个管理Activity的类,可以对项目中Activity的生命周期进行管理, * 达到安全退出的目的; * @author http://blog.csdn.net/finddreams */ public class AppManager {private static Stack<Activity> activityStack;private static AppManager instance;private AppManager(){}/** * 单一实例 */public static AppManager getAppManager(){if(instance==null){instance=new AppManager();}return instance;}
/** * 结束所有Activity */ public void finishAllActivity(){ for (int i = 0, size = activityStack.size(); i < size; i++){ if (null != activityStack.get(i)){ activityStack.get(i).finish(); } } activityStack.clear(); } /** * 彻底退出应用程序,安全退出 */ public void AppExit(Context context) { try { finishAllActivity(); ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); activityMgr.restartPackage(context.getPackageName()); System.exit(0); android.os.Process.killProcess(android.os.Process.myPid()); } catch (Exception e) { } }
2.CommonUtils 常用的工具类封装;
3.DeviceInfoUtil 获得设备相关的信息,屏幕的宽和高,以及分辨率(用作屏幕适配),IMEI,设备的蓝牙,和SD卡是否可用。
/** * @Description:手机设备的相关信息 * @author http://blog.csdn.net/finddreams */ public class DeviceInfoUtil{ public static String getImei(Context context) { try { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); String id = tm.getDeviceId(); if (id != null) { return tm.getDeviceId(); } } catch (Exception e) { e.printStackTrace(); } return "A000002CBD64E7"; }
public static int getScreenWidth(Context context) { WindowManager mWindowManager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); return mWindowManager.getDefaultDisplay().getWidth(); } public static int getScreenHeight(Context context) { WindowManager mWindowManager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); return mWindowManager.getDefaultDisplay().getHeight(); } public static boolean isSDAva() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED) || Environment.getExternalStorageDirectory().exists()) { return true; } else { return false; } }
4. LogManager 项目中Log的统一管理,可以设置在开发模式中显示,以及在生成模式正式上线后隐藏log,保证app安全。封装log多种模式,适合商业项目的开发。
5. Screenshot 可以在手机不需要root的情况下用于截图并分享;
/** * @Description:用于截图 * @author http://blog.csdn.net/finddreams */ public class Screenshot {private static final String TAG = "Screenshot";/** * Screenshot and save image to the sdcard * * @param context * @return image file * @throws FileNotFoundException */public static File getScreenshot(Context context,View view) throws FileNotFoundException {File file = null;try {if (view == null) {return null;}//View view = ((Activity)context).getWindow().getDecorView();//View mainScreen = ((Activity)context).findViewById(layoutResId);int height = DisplayUtil.getMobileHeight(context);int width = DisplayUtil.getMobileWidth(context);Bitmap bitmap = Bitmap.createBitmap( width, height, Config.ARGB_8888 );Canvas canvas = new Canvas(bitmap);view.draw(canvas);long time = System.currentTimeMillis();file = new File(ConstantsValue.IMAGE_APP_PATH+ "/" + time + ".png");FileOutputStream f = null;f = new FileOutputStream(file);boolean b = bitmap.compress(Bitmap.CompressFormat.PNG, 100, f);if(b){LogManager.d(TAG, "screentshot success");}if (file.exists()) {LogManager.d(TAG, "image file exists");} else {LogManager.d(TAG, "image file not exists");}} catch (Exception e) {LogManager.e(TAG, "getScreenshot", e);}return file;}}
6. ToastManager 项目中对Toast的统一管理,可以设置自定义的Toast,设置Toast显示的时间。
7. ServiceManager 管理手机的各种系统服务,比如LocationManager,TelephonyManager,InputMethodManager,Vibrator,ConnectivityManager 等等,
/** * @Description:获得系统服务管理器 * @author http://blog.csdn.net/finddreams */ public class ServiceManager { private static ConnectivityManager cm; private static LocationManager locationManager; private static TelephonyManager telephonyManager; private static InputMethodManager inputMethodManager; private static Vibrator vibrator; private static SensorManager sensorManager; private static Sensor accelerometerSensor; private static Sensor lightSensor;//光线传感器引用 private static LayoutInflater inflater;
8. ActivityUtil 对于Activity跳转到另一个Activity是否带Bundle数据,是否设置Activity的打开栈方式Flag标记,以及Activity跳转的动画显示;
/** * to new activity,use animation from right to left * @param context * @param cls */public static void goToActivityFromLeft2Right(Context context,Class<?> cls) {Activity activity = (Activity)context;Intent intent = new Intent();intent.setClass(activity, cls);activity.startActivity(intent);activity.overridePendingTransition(R.anim.in_from_right,R.anim.out_to_right);}
还有很多这里就不一一列举了,大家去下载看看就知道了。。。
这些常用的框架相信大家也都比较熟悉了,如果还不会使用的话,csdn上很多大神也都写了介绍如何使用的博客,很容易找到。
这个开源框架是平时开发项目中的总结,很多时候我们动手做项目,第一件事应该是把以前项目中,积累到的工具类和能用到的自定义的View控件都拷贝过来。这样你拥有的工具类越多,你就越能提高你开发项目的速度。
当然积累一定的工具类是需要时间的,所以我们在学习中要养成建立一个工具库的习惯,别人写的不错的也可以拿过来,这样在以后的开发中你就可以派上用场了。
当然这个框架还存在一些不足,以后我会去慢慢的维护,添加一些新的工具类和自定义的View控件,就当做是一个快速开发的工具库吧,当然如果有朋友能贡献几个人手上比较好的工具类也可以留言哦!谢谢大家!
- Android快速开发框架Android_BaseLib,集成了常用工具类,自定义View控件,Base基类封装,常用开源框架
- react native 开发框架,封装网络请求,自定义控件,常用工具类
- Android 框架:快速开发中Util常用工具类总结
- Android 快速开发框架 集成框架
- Android快速开发集成框架 包含所有常用资源
- Android快速开发常用工具类
- Android快速开发常用工具类
- Android 快速开发框架--2016集成优化。
- Android项目快速开发集成框架
- 开发框架搭建——常用基类的封装
- Android-自定义快速开发框架【占坑中】
- Android 常用工具类封装
- Android 常用工具类封装
- Android常用的快速开发框架
- 自定义封装StringUtils常用工具类
- Android 快速开发开源框架
- Android快速开发系列 常用工具类
- 【最火的ios开发技术】常用工具和ios常用开源框架库
- ImageView转Bitmap的方法。
- 终止符EOF的问题
- Best Time to Buy and Sell Stock II
- 实习感想
- eclipse安装tomcat插件
- Android快速开发框架Android_BaseLib,集成了常用工具类,自定义View控件,Base基类封装,常用开源框架
- *.db-journal 是什么(android sqlite )数据库删除缓存
- 第十四周OJ项目——国家的比较
- mvc文件下载实例
- 十一月有感
- [小技巧] 关于 bc 的 scale
- 论Android的内置存储、外置存储和系统内存
- Django框架常用命令纪要
- make scripts 时出错