Android 빠 른 개발 프레임 워 크 AndroidBaseLib, 상용 도구 클래스 통합, 사용자 정의 View 컨트롤, Base 기본 클래스 패키지, 상용 오픈 소스 프레임 워 크
GitHub 다운로드 주소:https://github.com/finddreams/Android_BaseLib
Android_BaseLib
이것 은 안 드 로 이 드 의 빠 른 개발 에 사용 되 는 프레임 워 크 로 주로 기 존의 프로젝트 개발 에서 수집 한 자주 사용 되 는 기능 이다.많은 프로젝트 에서 통용 되 는 것 을 통합 시 켜 바퀴 를 만 드 는 번 거 로 움 을 없 애고 직접 다운로드 해 왔 습 니 다. 수정 하면 기본 적 인 프레임 워 크 로 개발 하고 개발 속 도 를 향상 시 켜 현재 모 바 일 인터넷 시대 의 민첩 하고 빠 른 개발 리듬 에 적합 합 니 다.
1. 자주 사용 하 는 도구 류;
2. BaseActivity, BaseFragment, 그리고 BaseView 의 패 키 징 은 ViewPage 의 View 를 각각 관리 하고 자바 의 패 키 징 사상 에 부합 하도록 한다.
3. BaseAdapter 를 MyBaseAdapter 로 밀봉 하고 BaseViewHolder 를 도입 하 는 만능 ViewHolder 입 니 다.
4. 자주 사용 하 는 사용자 정의 View, CustomToast, SlideButton (슬라이딩 버튼), RollViewPager (자동 으로 구 르 는 ViewPage 광고)...
5. 많은 프로젝트 에서 자주 사용 하 는 오픈 소스 프로젝트 를 추가 하여 사용 하기에 편리 합 니 다.예 를 들 면: ViewPageIndicator, 네 비게 이 션 표시 줄, 많은 응용 프로그램 에서 사용 해 야 합 니 다. Pulltorefreeshview, 드 롭 다운 새로 고침, 각종 ListView 가 GridView 의 드 롭 다운 을 지원 합 니 다. Gson, 구 글 공식 해석 json 형식의 라 이브 러 리 fastjson, 알 리 바 바 가 만 든 json 형식의 라 이브 러 리 android - async - http, 비동기 네트워크 프레임 워 크 Zxing, QR 코드 스 캔, 프로젝트 의 이름 은 core 입 니 다. Universal - image - loader, 강력 한 비동기 로 네트워크 그림 을 불 러 와 OOM 방지 국내 에서 유명한 빠 른 개발 프레임 워 크 안 드 로 이 드 2. X 에서 호 환 되 는 애니메이션 라 이브 러 리 volley, 구 글 공식 방문 네트워크 의 프레임 워 크 EventBus, Android 구성 요소 간 통신 라 이브 러 리 간소화 Butterknife 는 주입 프레임 워 크 에 의존 하여 findViewById 에서 해방 시 킵 니 다.
(1) 자주 사용 하 는 도구 류 는 지면 원인 으로 인해 문장의 마지막 상세 한 소 개 를 보십시오.
(2) BaseActivity, BaseFragment, BasePage 를 패키지 하여 BaseAdapter 를 패키지 하고 모든 공공 점 을 패키지 하 며 하위 클래스 는 계승 만 하면 됩 니 다.
(3) 만능 뷰 홀더 매번 Adapter 클래스 에 정적 인 ViewHolder 문 제 를 써 서 코드 의 재 활용 성 을 실현 하 는 것 을 줄 일 수 있 습 니 다.
(4) 사용자 정의 뷰 가 많이 통합 되 었 습 니 다.
예 를 들 어 프로젝트 가 자주 사용 하 는 상단 표시 줄 은 TopBarView 로 직접 밀봉 되 고 레이아웃 파일 에 만 도입 하면 됩 니 다.
RollViewPager 가 자동 으로 스크롤 할 수 있 는 ViewPager 는 제목 과 지시 에 사용 할 작은 원점 이 있 습 니 다.
Progress Wheel 사용자 정의 진도 바,
CustomToast 사용자 정의 Toast
CircleImageView 원형 이미지 뷰
SlideButton 좌우 슬라이딩 스위치
ClearEditText 삭제 아이콘 이 있 는 EditText 로그 인 에 자주 사 용 됩 니 다.
ScrollListView ScrollView 에 한 줄 만 표시 되 는 문제 해결
더 많은 사용자 정의 View 컨트롤 은 항목 을 다운로드 하 십시오. 자세히 알 아 보 세 요. 여 기 는 너무 많은 소 개 를 하지 않 습 니 다.
(5) CrashHandler
이상 충돌 처리 에 사용 프로그램 에 캡 처 되 지 않 은 이상 이 발생 했 을 때 이 클래스 에서 프로그램 을 연결 하고 오류 보고 서 를 기록 합 니 다.오류 정 보 를 sd 카드 에 저장 한 후 서버 에 이상 정 보 를 업로드 하여 프로그래머 가 이상 한 처 리 를 편리 하 게 합 니 다.
(6) 자주 사용 하 는 오픈 소스 프레임 워 크 를 통합 했다.
ViewPageIndicator 미끄럼 네 비게 이 션 에 자주 사용 되 는 오픈 소스 프레임 워 크 는 왕 이 뉴스 클 라 이언 트 Tab 태그 미끄럼 네 비게 이 션 기능 을 편리 하 게 할 수 있 습 니 다.
Pulltorefreshview 드 롭 다운 리 셋 은 모든 항목 에서 반드시 사용 해 야 하 는 것 이 라 고 할 수 있 습 니 다. 이 건 더 말 할 필요 가 없습니다.
Gson 서버 에서 되 돌아 오 는 json 분석 에 사용 할 수 있 습 니 다. 도구 류 에서 GsonUtil 도움말 류 를 찾 을 수 있 고 json 을 분석 하 는 데 매우 편리 합 니 다.
android-async-http 매우 성숙 한 비동기 요청 네트워크 의 클래스 입 니 다. 사용 하기 가 매우 간단 합 니 다. MyHttpClient 에서 사용 방법 을 볼 수 있 습 니 다.물론 네트워크 프레임 워 크 가 필요 하지 않 아 도 됩 니 다. httpclient 를 패키지 하여 MyHttpClient 로 만 들 수 있 습 니 다. 그러나 오픈 소스 프레임 워 크 는 매우 성숙 해서 실제 운행 과정 에서 알 수 없 는 문 제 를 해결 할 수 있 습 니 다.
Zxing QR 코드 / 바코드 인식 프레임 워 크 프로젝트 에서 QR 코드 스 캔 이 필요 하 다 면 이 프레임 워 크 를 사용 할 수 있 습 니 다. 프로젝트 에 통합 되 었 습 니 다. startActivity ForResult 방식 으로 이 프로젝트 의 Capture Activity 류 를 호출 하면 스 캔 인터페이스 를 열 고 결과 에서 스 캔 한 결 과 를 얻 을 수 있 습 니 다.이 Capture Activity 는 스 캔 에 성 공 했 을 때의 진동 과 소 리 를 확인 하여 사용자 의 체험 을 향상 시 켰 다.물론 아래 에서 위로 미 끄 러 지 는 스크롤 바 도 있 습 니 다. 특별한 수요 가 있 으 면 스스로 수정 할 수 있 습 니 다. 예 를 들 어 플래시 를 더 하 는 것 도 좋 은 생각 입 니 다.
Universal-image-loader 그림 의 로 딩 이 왜 적 습 니까? 이 오픈 소스 프레임 워 크 는 프로젝트 에서 ListView 로 그림 을 불 러 오 는 여러 가지 문 제 를 전면적으로 해결 합 니 다.
xUtils 아주 좋 은 빠 른 개발 프레임 워 크 입 니 다. 그 중에서 ViewUtil 모듈 은 우리 가 프로젝트 에 있 는 각종 귀 찮 은 findViewById 코드 와 setOnclickLister 등 을 절약 할 수 있 습 니 다. 안 드 로 이 드 의 ioc 프레임 워 크 에 속 합 니 다. 완전 주석 방식 으로 UI, 자원 과 이벤트 바 인 딩 을 할 수 있 습 니 다.
(1) 도구 류 에 자주 사용 되 는 항목 을 통합 했다.
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 안전 을 확보 할 수 있 습 니 다.로그 의 다양한 모델 을 패키지 하여 상업 프로젝트 의 개발 에 적합 합 니 다.
5. Screenshot 핸드폰 에 루트 가 필요 없 는 상태 에서 캡 처 하고 공유 할 수 있 습 니 다.
/**
* @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 컨트롤 을 추가 하 겠 습 니 다. 빠 른 개발 도구 창고 라 고 생각 하 세 요. 물론 친구 가 몇 명 에 게 좋 은 도구 류 를 기여 할 수 있다 면 메 시 지 를 남 길 수 있 습 니 다!감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.