1. Git Client 다운로드 & 설치
* https://git-scm.com/downloads
* OS에 맞는 설치파일 다운로드 & 설치
2. Git Bash 실행 & Clone
* clone 받을 폴더로 이동
* git clone https://android.googlesource.com/platform/packages/inputmethods/LatinIME 실행
※ 사이트주소 : https://android.googlesource.com/platform/packages/inputmethods/LatinIME/
3. Android Studio 다운로드 & 설치
* https://developer.android.com/sdk/index.html
* OS에 맞는 설치파일 다운로드 & 설치
* SDK & NDK 설치
4. phone에 빌드를 위해 드라이버 설치
5. Project 생성
6. 자동 생성된 소스 삭제 & LatinIME 소스에서 다음을 복사
* app/src/main/java/삭제
* app/src/main/res/삭제
* app/src/main/java/com.android.inputmethod/
=> java 폴더의 소스 + java-overridable 폴더의 소스
* app/src/main/res
* app/src/main/AndroidManifest.xml (overwrite)
7. APP build & Run 에서 에러 발생 – (1)
Error:Execution failed for task ':app:mergeDebugResources'. > {APP_PATH}\app\src\main\res\values\strings-emoji-descriptions.xml:259:65: Error: 주석에서 부적합한 XML 문자(유니코드: 0xd83c)가 발견되었습니다.
* {APP_PATH}\app\src\main\res\values\strings-emoji-descriptions.xml 파일을 다른에디터에서 문자셋을 변경해서 복사
8. APP build & Run 에서 에러 발생 – (2)
C:\Users\Administrator\Desktop\OneTouchKey\app\src\main\res\values\colors.xml Error:(2) Attribute "divider" has already been defined
* build.gradle 파일의 의존성을 다음과 같이 수정한다.
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v13:23.0.1' //compile 'com.android.support:appcompat-v7:23.0.1' }
9. APP build & Run 에서 에러 발생 – (3)
Error:(28, 24) error: package javax.annotation does not exist Error:(184, 6) error: cannot find symbol class Nonnull
app/libs/jsr305-1.3.7.jar 라이브러리 추가
10. APP build & Run 에서 에러 발생 – (4)
Error:(22, 37) error: package com.android.inputmethodcommon does not exist Error:(35, 42) error: cannot find symbol class InputMethodSettingsFragment ...
* 다음 패키지 추가 : com.android.inputmethodcommon
* 클래스 파일 추가 : InputMethodSettingsActivity.java, InputMethodSettingsFragment.java, InputMethodSettingsImpl.java, InputMethodSettingInterface.java
11. APP build & Run 에서 에러 발생 – (5)
Error:Execution failed for task ':app:compileDebugNdk'. > Error: NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin. For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental. Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.
* Android Studio 1.3 이상의 경우 기본적으로 Android Gradle Plugin에서 지원하는 방식으로 NDK를 빌드하지만 이전방식을 사용하기 위해서는 gradle.properties파일에 다음내용을 추가
# gradle.properties android.useDeprecatedNdk=true
12. APP 실행
* 앱이 실행됨을 확인
* 키보드가 동작하기 위해서는 NDK build 설정이 필요하다 이는 따로 블로깅예정