Android 빠 른 개발 프레임 워 크 AndroidBaseLib, 상용 도구 클래스 통합, 사용자 정의 View 컨트롤, Base 기본 클래스 패키지, 상용 오픈 소스 프레임 워 크

블 로 그 를 쓰 시 느 라 고생 하 셨 습 니 다. 전재 하신 분 은 출처 를 밝 혀 주세요.http://blog.csdn.net/finddreams/article/details/41548779
    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 컨트롤 을 추가 하 겠 습 니 다. 빠 른 개발 도구 창고 라 고 생각 하 세 요. 물론 친구 가 몇 명 에 게 좋 은 도구 류 를 기여 할 수 있다 면 메 시 지 를 남 길 수 있 습 니 다!감사합니다!

좋은 웹페이지 즐겨찾기