# MyAndroidBaseLibrary **Repository Path**: huanliangchen/my-android-base-library ## Basic Information - **Project Name**: MyAndroidBaseLibrary - **Description**: 自己的安卓共享库 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-05-31 - **Last Updated**: 2024-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MyAndroidBaseLibrary #### 介绍 自己的安卓共享库 [![](https://img.shields.io/badge/Gitee-MyAndroidBaseLibrary-blue.svg)](https://gitee.com/huanliangchen/OpenReading) #### 功能介绍 1. 管理Activity 2. 封装Log库,提供整洁的Log打印格式 3. 自定义注解实现Activity中View的绑定 4. 提供自定义控件 #### 使用说明 ##### 本地引用 将本项目下载到本地 ```java include ':mylibrary' implementation project(path :':mylibrary') ``` ##### 远程调用 项目已发布到jitpack,按要求引用即可 示例 ```java //在settings.gradle添加jitpack仓库地址 maven{ url 'https://jitpack.io'} //引入远程库 implementation 'com.gitee.huanliangchen:my-android-base-library:1.0.5' ``` #### 具体实现 ##### 1. 管理Activity 继承BaseActivity,维护一个ActivityCollector。 在onCreate()中保存当前Activity实例,onDestroy()中清除。 提供一个finishAll()方法关闭当前进程的所有Activity。 ##### 2. 自定义注解实现Activity中View的绑定 通过注解获取需要绑定的引用及id ```java @BindView(R.id.text_tv) TextView textView; ``` 使用com.google.auto.service模块收集注解信息并生成供运行时使用的绑定文件 ```java public class MainActivity_ViewBinding implements IBinder { @Override public void bind(com.chen.customannotation.MainActivity target) { target.textView = (android.widget.TextView) target.findViewById(2131231167); } } ``` 以上工作完成后只需在Activity中调用一下绑定方法即可实现自动绑定 ```java public class CustomKnife { public static void bind(Activity activity) { String name = activity.getClass().getName() + "_ViewBinding"; try { //通过反射生成一个类对象 Class aClass = Class.forName(name); //通过newInstance得到接口实例 IBinder iBinder = (IBinder) aClass.newInstance(); //最后调用接口bind()方法 iBinder.bind(activity); } catch (Exception e) { e.printStackTrace(); } } } //Activity的onCreate()中 CustomKnife.bind(this); ```