Android 아키텍처의 프로젝트 구성 요소 실전

1994 단어
배경:
회사 프로젝트 이전에 eclipse 환경에서 개발된 것은 일찍 일어나서 프로그래머가 프로젝트를 기획하지 않았기 때문에 많은 문제점이 존재한다. 1. 코드가 결합되지 않고 많은 코드 프로젝트 간에 강한 인용과 결합이 있다.2. 중복 코드가 매우 많고 같은 기능을 여러 번 개발하며 불필요한 코드가 많다.3. 프로젝트가 통일된 코드 규범이 없기 때문에 복용하기 어렵다.4. 제3자 프레임워크는 인용이 많고 대부분이 2차 포장이 없기 때문에 업그레이드와 유지보수가 어렵다.5. 프로젝트 이해가 크면 eclipse 환경에서 65535 문제가 발생한다.
솔루션:
토론을 거쳐 두 가지 방안을 뽑았는데 하나는 플러그인화를 실현하여 65535문제를 해결할 뿐만 아니라 열갱신 기능을 갖추는 것이다.그러나 코드가 어허 정도가 높아 실행할 위험이 높기 때문에 두 번째 방안을 선택한다.프로젝트를 어셈블리화합니다.
먼저 프로젝트를 안드로이드 스튜디오 위로 옮긴 다음gradle 프로젝트 설정을 통해 구성 요소 개발 구조를 완성합니다.
구성 요소 및 플러그인:
플러그인화: apk,jar,dex 등 플러그인 파일을 열배치함으로써 코드를 통합하고 주류 방식은 에이전트 모드가 있거나 hock시스템의 관건적인 절차를 반사한다.
구성 요소화:gradle 프로젝트 설정을 통해 프로세스 통신, 전역 루트에서 구성 요소 프로젝트를 통합하고 구성 요소화는 상대적으로 플러그인화 위험이 적으며 안정성이 높다.플러그인화는 열배치의 주요 특성을 갖추고 모든 플러그인은 독립된 프로젝트이다.
플러그인화와 모듈화는 두 가지 다른 개념이지만 둘 다 모순되지 않고 협동적으로 사용할 수 있다. 왜냐하면 어떤 차원에서 당신의 프로젝트가 플러그인화를 실현하려면 반드시 먼저 모듈화를 실현해야 하기 때문이다.
프로젝트 구조:
프로젝트 프로젝트 | - 케이스 프로젝트 모듈(변환 과정이 있기 때문에 원주 프로젝트를 케이스 프로젝트로 하고 후기에는 업무 코드가 없고 다른 구성 요소만 관리할 수 있음) | - 업무 구성 요소 1모듈| - 업무 구성 요소 2모듈......여기에서 생략하면 임의의 다중 업무 구성 요소를 추가할 수 있습니다 | - 회사 sdk 프로젝트library(주로 공용 라이브러리, 제3자 라이브러리 등 포함)
마지막으로 구성 요소gradle 프로젝트 설정을 실현합니다.
조립화 배치는 비교적 쉽다.위에서 설명한 바와 같이 사실 우리가 최종적으로 발표한 것은 완전한 앱이다. 단지 개발할 때 독립된 모듈 개발을 실현할 뿐이다.그래서gradle을 설정해서module와library를 바꾸기만 하면 됩니다.
셸 프로젝트gradle 구성:

    def isDev = IS_DEV_TAG.toBoolean()
    if (!isDev) {
        compile project(':plugin_module:rspluginmodule')
        compile project(':plugin_module:RsBlHomepage')
        compile project(path: ':BLVip')
    }


위 코드는 발표할 때만library 구성 요소로 도입된다는 것을 표시합니다.해당 구성 요소gradle에서 구성:

if (isDev){
    apply plugin: 'com.android.application'
}else {
    apply plugin: 'com.android.library'
}

.................


if (isDev){
    applicationId packageName
}



주로 모듈 library 전환을 실현하는 데 사용됩니다.
그러면 위의 글로벌 변수 IS 를 통해DEV_TAG는 게시 모드와 구성 요소 개발 모드 전환을 실현합니다.

좋은 웹페이지 즐겨찾기