2017-01-18 7 views
1

Android를 개발하고 응용 프로그램을 로컬에서 테스트하는 방법이 있습니까? 때Android 로컬 개발의 경우 지정 방법은 무엇입니까?

if (LOCALLY) { 
    MyLocalTools.xdebugIntegration(); 
    ... 
} 
... 

그리고 : 그래서 응용 프로그램이 배포하고 올바른 원격 데이터를 가져올 수하고자하는 경우 대 지역 개발의 경우 실행해야하는 특정 코드를 실행하는 코드에서 같은 뭔가를 쓸 수 있습니다 응용 프로그램을 공유하는 것입니다, 난 그냥 모든 로컬 코드를 음소거하는 글로벌 옵션을 설정해야합니까?

+1

로컬 데이터에서 테스트를 수행하기 위해'Junit' 등의 테스트 모듈을 사용하는 것이 어떻습니까? –

+0

나는'Junit'의 존재를 알고 있지만 작은 개인 앱이기 때문에 디버거를 사용하고 'AVC'를 사용하여 사용자의 앱과의 상호 작용을 시뮬레이션하는 것을 선호합니다. 두 번째 요점은 xdebug를 사용하여 PHP를 디버깅 할 때 로컬로 프로그래밍 할 때 내 로컬 서버 IP 주소 – user544262772

답변

2

빌드 맛 내기 및 변형 변형을 사용할 수 있습니다. 다음과 같이 당신의 build.gradle에서

당신은 어떤 맛을 정의 할 수 있습니다

productFlavors { 

     dev { 
      buildConfigField "String", "SERVICE_URL_BASE", "\"dev.example/rest\"" 
      applicationId "development.example.app" 
     } 

     prod { 
      buildConfigField "String", "SERVICE_URL_BASE", "\"prod.example/rest\"" 
      applicationId "com.example.app" 
     } 

    } 

당신은 우리가 사용하는 다른 변수를 2 맛을 정의한 볼 수 있듯이. 제 경우에는 휴식 서비스와 다른 응용 프로그램 ID에 대해 두 개의 다른 종점을 정의했습니다.

그러면 Android Studio의 왼쪽 하단에서 앱을 실행하는 데 사용되는 빌드 변형을 선택할 수 있습니다. 빌드 변형은 빌드 풍미와 빌드 유형의 조합입니다 (기본값은 빌드 유형이 디버그 및 릴리스입니다).

BuildConfig.SERVICE_URL_BASE 

를 그리고이 같은 뭔가 맛과 빌드 유형에 액세스 할 수 있습니다 : 사용

BuildConfig.FLAVOR 
BuildConfig.BUILD_TYPE 

다음과 같이 당신이 build.gradle 파일에 정의 된 변수에 액세스 할 수 있습니다 코드에서

이러한 변수를 사용하여 원하는 모든 스위치를 구현할 수 있습니다.

+0

을 사용하여 페이지를로드해야 할 때 이러한 정보가 최종 아티팩트에 포함될 수 있습니까? – user544262772

+0

네,이 방법을 사용하면 build.gradle 파일에 모든 빌드 변형 변수를 포함 할 수 있습니다. 분명히 정상적인 방법으로 디버깅 할 때 빌드 변형 – firegloves

+0

과 일치하는 변수 값만 있습니다. 어떻게 맛을 전환 할 수 있습니까? 아시다시피 REST 서비스 용 로컬 및 원격 HTTP 서버가 있습니다. 이제는 내 응용 프로그램을 배포하기 전에 원격 서버의 REST 서비스가 로컬 서버와 동일하게 작동하도록하고 싶습니다. productFlavors는 필자가 필요로하는 것처럼 보이지만 어떻게 디버깅 프로세스에서 한 맛을 다른 맛으로 바꿀 수 있습니까? – user544262772

3

"로컬 개발"이라 함은 debug 빌드를 의미하고 "배포 예정" release 빌드 의미, 당신은 그 build types을 구별하는 BuildConfig.BUILD_TYPE를 사용하거나 그렇지 않은 대 디버깅이다 빌드 구분하는 BuildConfig.DEBUG을 사용할 수 있습니다. 또는 특정 상수가 필요하면 use buildConfigField을 입력하여 해당 사용자 정의 필드를 BuildConfig에 추가하십시오.

다른 답변으로 인용 된 제품의 맛은 2 개의 별도 릴리스 빌드 (예 : Google의 인앱 구매 API가있는 패키지, Amazon의 인앱 구매 API가있는 패키지)가 필요한 경우를 위해 설계되었습니다.

+0

제품의 맛은 다른 용도로 사용되지만 유연성이 뛰어납니다. IMHO – firegloves

+1

@firegloves : 빌드 유형으로는 할 수없는 제품 맛이 거의 없습니다. 또한 N 개의 독특한 그룹의 맛을 위해 차원을 사용하는 것이 번거로워집니다. 따라서 개발 라이프 사이클과 관련이있는 경우 빌드 유형을 사용하여 모델링하는 것이 좋습니다. – CommonsWare

+0

좋아, 당신이 말한 것에 대해 잘 생각해보십시오. 당신과 동의합니다. – firegloves