기존 Android 애플리케이션 마이그레이션

improve this page | report issue

개요

IBM MobileFirst Platform Foundation 버전 6.2.0 이상으로 작성된 기존의 네이티브 Android 프로젝트를 마이그레이션하려면 현재 버전에서 SDK를 사용하도록 프로젝트를 수정해야 합니다. 그런 다음 V8.0에서 중단되거나 중단되지 않은 클라이언트 측 API를 대체하십시오. 마이그레이션 지원 도구는 코드를 스캔하고 대체할 API의 보고서를 생성할 수 있습니다.

다음으로 이동

버전 업그레이드 준비를 위해 기존 MobileFirst 네이티브 Android 앱 스캔

마이그레이션 지원 도구는 네이티브 Android 앱의 소스를 스캔하고 V8.0에서 더 이상 사용되지 않거나 중단된 API의 보고서를 생성하여 마이그레이션을 위해 IBM Mobile Foundation의 이전 버전으로 작성된 앱을 준비하도록 도와줍니다.

마이그레이션 지원 도구를 사용하기 전에 다음 정보를 파악하는 것이 중요합니다.

  • 기존 Mobile Foundation 네이티브 Android 애플리케이션이 있어야 합니다.
  • 인터넷에 액세스할 수 있어야 합니다.
  • node.js 버전 4.0.0 이상이 설치되어 있어야 합니다.
  • 마이그레이션 프로세스의 제한사항을 검토하고 숙지하십시오. 자세한 정보는 이전 릴리스에서 앱 마이그레이션을 참조하십시오.

Mobile Foundation의 이전 버전으로 작성된 앱은 몇 가지를 변경하지 않으면 V8.0에서 지원되지 않습니다. 마이그레이션 지원 도구는 기존 앱에서 소스 파일을 스캔하여 프로세스를 단순화하고, V8.0에서 더 이상 사용되지 않거나 더 이상 지원되지 않거나 수정된 API를 식별합니다.

마이그레이션 지원 도구는 앱의 주석 또는 개발자 코드를 수정하거나 이동하지 않습니다.

  1. 다음 방법 중 하나를 사용하여 마이그레이션 지원 도구를 다운로드하십시오.
    • Git 저장소에서 .tgz 파일을 다운로드하십시오.
    • MobileFirst Operations Console에서 마이그레이션 지원 도구를 포함하는 MobileFirst Developer Kit을 mfpmigrate-cli.tgz라는 파일로 다운로드하십시오.
  2. 마이그레이션 지원 도구를 설치하십시오.
    • 도구를 다운로드한 디렉토리로 변경하십시오.
    • 다음 명령을 입력하여 NPM을 사용하여 도구를 설치하십시오.
    npm install -g
    
  3. 다음 명령을 입력하여 Mobile Foundation 앱을 스캔하십시오.

    mfpmigrate scan --in source_directory --out destination_directory --type android
    

    source_directory
    프로젝트의 현재 위치입니다.

    destination_directory
    보고서가 작성된 디렉토리입니다.

    스캔 명령과 함께 사용될 때 마이그레이션 지원 도구는 V8.0에서 제거되었거나 더 이상 사용되지 않거나 변경된 API를 기존 Mobile Foundation 앱에서 식별하여 식별된 대상 디렉토리에 저장합니다.

Gradle로 Android 프로젝트 마이그레이션

Gradle을 사용하여 MobileFirst SDK로 Android 애플리케이션 마이그레이션

Android Studio 및 Android SDK가 올바르게 설정되었는지 확인하십시오. 시스템을 설정하는 방법에 대한 자세한 정보는 Android Studio 개요를 참조하십시오. Mobile Foundation으로 업그레이드하려면 먼저 프로젝트가 Android Studio/Gradle 설정을 준수하고 오류 없이 컴파일되어야 합니다.

참고: 이 태스크는 Android 프로젝트가 Android Studio로 작성되었고 Android Studio를 사용하여 신규 또는 기존 애플리케이션에 Mobile Foundation SDK 추가(7.1)에서 설명하는 것처럼 MobileFirst SDK가 함께 추가되었다고 가정합니다.

Android Studio 프로젝트가 이전 버전의 MobileFirst SDK를 추가하도록 설정된 경우, build.gradle 종속 항목 격납장치에서 compile 그룹을 제거하십시오. 예를 들어, 7.1에서 업그레이드하는 경우 다음 그룹을 제거하십시오.

compile group: 'com.ibm.mobile.foundation',
            name:'ibmmobilefirstplatformfoundation',
            version:'7.1.0.0',
            ext: 'aar',
            transitive: true

이제 로컬 또는 원격 SDK 파일을 사용하여 V8.0.0 SDK 및 구성을 추가할 수 있습니다. Android 애플리케이션에 MobileFirst SDK 추가를 참조하십시오.

참고: 새 SDK를 가져온 후에는 수동으로 Javadoc 파일을 가져와야 합니다. Android Studio Gradle 프로젝트에 Javadoc 등록을 참조하십시오.

이제 MobileFirst SDK를 사용하여 네이티브 Android 애플리케이션 개발을 시작할 수 있습니다. V8.0.0 API의 변경사항에 맞게 코드를 조정해야 할 수도 있습니다(Android 코드 업데이트 참조).

다음에 수행할 작업

V8.0에서 중단되거나 중단되지 않은 클라이언트 측 API를 대체하십시오.

Android 코드 업데이트

IBM Mobile Foundation V8.0은 이전 버전에서 개발된 앱을 변경해야 하는 많은 Android SDK 변경사항을 소개합니다.
다음 표는 MobileFirst Android SDK의 변경사항을 나열합니다.

중단된 Android API 요소

API 요소 마이그레이션 경로
WLConfig WLClient.getConfig() 대체 없음.
  • WLDevice WLClient.getWLDevice()
  • WLClient.transmitEvent(org.json.JSONObject event)
  • WLClient.setEventTransmissionPolicy(WLEventTransmissionPolicy policy)
  • WLClient.purgeEventTransmissionBuffer()
위치정보에 대한 Android API 또는 써드파티 패키지를 사용하십시오.
  • WL.Client.getUserInfo(realm, key)
  • WL.Client.updateUserInfo(options)
대체 없음.
  • WL.Client.getUserInfo(realm, key
  • WL.Client.updateUserInfo(options)
대체 없음.
WLClient.checkForNotifications() WLAuthorizationManager.obtainAccessToken("", listener)을 사용하여 서버에 대한 연결을 확인하고 애플리케이션 관리 규칙을 적용하십시오.
  • WLClient.login(java.lang.String realmName, WLRequestListener listener, WLRequestOptions options)
  • WLClient.login(java.lang.String realmName, WLRequestListener listener)
AuthorizationManager.login()을 사용하십시오.
  • WLClient.logout(java.lang.String realmName, WLRequestListener listener, WLRequestOptions options)
  • WLClient.logout(java.lang.String realmName, WLRequestListener listener)
AuthorizationManager.logout()을 사용하십시오.
WLClient.obtainAccessToken(java.lang.String scope,WLResponseListener responseListener) WLAuthorizationManager.obtainAccessToken(String, WLAccessTokenListener)을 사용하여 서버에 대한 연결을 확인하고 애플리케이션 관리 규칙을 적용하십시오.
  • WLClient.getLastAccessToken()
  • WLClient.getLastAccessToken(java.lang.String scope)
AuthorizationManager를 사용하십시오.
WLClient.getRequiredAccessTokenScope(int status, java.lang.String header) AuthorizationManager를 사용하십시오.
WLClient.logActivity(java.lang.String activityType) com.worklight.common.Logger를 사용하십시오.
WLAuthorizationPersistencePolicy 대체 없음. 권한 지속성을 구현하려면 애플리케이션 코드에 인증 토큰을 저장하고 사용자 정의 HTTP 요청을 작성하십시오. 자세한 정보는 Java™ 사용자 정의 자원 요청 구현 샘플을 참조하십시오.
  • WLSimpleSharedData.setSharedToken(myName, myValue)
  • WLSimpleSharedData.getSharedToken(myName)
  • WLSimpleSharedData.clearSharedToken(myName)
애플리케이션에서 토큰을 공유하는 Android API를 사용하십시오.
WLUserCertificateManager.deleteCertificate(android.content.Context context) 대체 없음.
BaseChallengeHandler.submitFailure(WLResponse wlResponse) BaseChallengeHandler.cancel()을 사용하십시오.
ChallengeHandler 사용자 정의 게이트웨이 인증 확인의 경우 GatewayChallengeHandler를 사용하십시오. MobileFirst 보안 검사 인증 확인의 경우 SecurityCheckChallengeHandler를 사용하십시오.
WLChallengeHandler SecurityCheckChallengeHandler를 사용하십시오.
ChallengeHandler.isCustomResponse() GatewayChallengeHandler.canHandleResponse()를 사용하십시오.
ChallengeHandler.submitAdapterAuthentication 인증 확인 핸들러에서 유사한 로직을 구현하십시오. 사용자 정의 게이트웨이 인증 확인 핸들러의 경우 GatewayChallengeHandler를 사용하십시오.

레거시 org.apach.http API에 종속되는 Android API는 더 이상 지원되지 않음

API 요소 마이그레이션 경로
org.apache.http.Header[]는 이제 더 이상 사용되지 않습니다. 따라서 다음 메소드가 제거됩니다.  
org.apache.http.Header[] WLResourceRequest.getAllHeaders() 대신 새 Map<String, List<String>> WLResourceRequest.getAllHeaders() API를 사용하십시오.
WLResourceRequest.addHeader(org.apache.http.Header header) 대신 새 WLResourceRequest.addHeader(String name, String value) API를 사용하십시오.
org.apache.http.Header[] WLResourceRequest.getHeaders(java.lang.String headerName) 대신 새 List<String> WLResourceRequest.getHeaders(String headerName) API를 사용하십시오.
org.apache.http.Header WLResourceRequest.getFirstHeader(java.lang.String headerName) 대신 새 WLResourceRequest.getHeaders(String headerName) API를 사용하십시오.
WLResourceRequest.setHeaders(org.apache.http.Header[] headers) 대신 새 WLResourceRequest.setHeaders(Map<String, List<String>> headerMap) API를 사용하십시오.
WLResourceRequest.setHeader(org.apache.http.Header header) 대신 새 WLResourceRequest.setHeaders(Map<String, List<String>> headerMap) API를 사용하십시오.
org.apache.http.client.CookieStore WLClient.getCookieStore() ClearableCookieJar WLClient.getPersistentCookies()로 대체되었습니다.
WLClient.setAllowHTTPClientCircularRedirect(boolean isSet) 대체 없음. MFP 클라이언트를 사용하면 순환하여 경로를 재지정할 수 있습니다.
  • WLHttpResponseListener
  • WLResourceRequest, WLHttpResponseListener를 가져오는 모든 메소드:
    • WLResourceRequest.send(java.util.HashMap formParameters,WLHttpResponseListener listener)
    • WLResourceRequest.send(org.json.JSONObject json, WLHttpResponseListener listener)
    • WLResourceRequest.send(byte[] data, WLHttpResponseListener listener)
    • WLResourceRequest.send(java.lang.String requestBody,WLHttpResponseListener listener)
    • WLResourceRequest.send(WLHttpResponseListener listener)
    • WLClient.sendRequest(org.apache.http.client.methods.HttpUriRequest request,WLHttpResponseListener listener)
    • WLClient.sendRequest(org.apache.http.client.methods.HttpUriRequest request, WLResponseListener listener)
더 이상 사용되지 않는 Apache HTTP 클라이언트 종속 항목으로 인해 제거되었습니다. 요청 및 응답을 완전히 제어하려면 자체 요청을 작성하십시오.
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on May 13, 2020