크로미움 안드로이드 버전 빌드

https://www.chromium.org/developers/how-tos/android-build-instructions

사실 저 위에 내용이 다 나와 있지만 헷갈리니 보기 쉽게 설명!

  1. depot_tools package 설치
1
https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up
  1. 소스코드 다운로드!
1
2
$ mkdir ~/chromium && cd ~/chromium
~/chromium$ fetch --nohooks android # This will take 30 minutes on a fast connection

만약 Linux 버전으로 checkout 된 버전이 존재한다면 fetch하지 않고 .gclient 파일에 target_os = [‘android’]를 추가해주면 된다.

  1. 소스코드 빌드하기
    Chromium을 빌드 할 수 있는 방법은 두가지가 있다.
    GYP build와 GN build가 있는데, 나는 GYP build로! (원래는 GYP build도 됬었는데, 현재는 제대로 지원안하는 것 같고 GN build로 해야 제대로 되는 것 같다)
  • GYP Build
1
2
~/chromium$ echo "{ 'GYP_DEFINES': 'OS=android target_arch=arm', }" > chromium.gyp_env
~/chromium$ gclient runhooks
  • GN Build
1
2
3
$ export GYP_CHROMIUM_NO_ACTION=1
$ ~/chromium/src$ gn args out/Default
# out 뒤 폴더명은 Default 대신 다른이름으로 대체가능
1
2
3
4
#파일이 열리면 입력
target_os = "android"
target_cpu = "arm" # (default)
is_debug = true # (default)
  • 빌드 dependencies 설정
1
2
#빌드에 필요한 시스템 패키지 업데이트
~/chromium$ src/build/install-build-deps-android.sh

OpenJDK 설정 업데이트
-> 없으면 설치법은 (https://www.davidlab.net/ko/tech/how-to-setup-android-dev-env-on-ubuntu-part1/)

1
2
3
4
5
6
sudo update-alternatives --config javac
sudo update-alternatives --config java
sudo update-alternatives --config javaws
sudo update-alternatives --config javap
sudo update-alternatives --config jar
sudo update-alternatives --config jarsigner
  • 하위 디렉토리 동기화
1
~/chromium/src$ gclient sync
  1. APK 빌드& 설치
1
~/chromium/src$ . build/android/envsetup.sh

device 연결 됬는지 확인!

1
third_party/android_tools/sdk/platform-tools/adb devices

빌드를 full browser, Content shell, Webview shell 버전 각각 다르게 할 수 있다.

  • Full browser 빌드
1
2
~/chromium/src$ ninja -C out/Release chrome_public_apk
~/chromium/src$ build/android/adb_install_apk.py out/Release/apks/ChromePublic.apk # For gyp

다른 버전들 빌드 방법은 위에 있는 크로미움 사이트에서 확인가능!

  • 설치
    1
    2
    ~/chromium/src$ build/android/adb_install_apk.py out/Release/apks/ChromePublic.apk # For gyp.
    ~/chromium/src$ CHROMIUM_OUTPUT_DIR=$gndir build/android/adb_install_apk.py $gndir/apks/ChromePublic.apk # For gn
Share