일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- so file
- SO 파일
- apache
- Status Bar
- Android NDK시스템
- Google V8 Engine
- apns
- java
- 안드로이드
- apk 다운사이징
- Push
- 공인인증서 정보
- android log dump
- appbarlayout
- FlexiblePageView
- 인증서 정보 뽑아내기
- sha1 convert hashkey
- embedd
- V8 Engine
- PageControl
- Objective C
- IOS10
- Magnify Anim
- JavaScript Engine
- ios framework
- ios
- v8 engine xcode build
- Android
- IMAGE
- 공인인증서 만료일
Archives
- Today
- Total
caTea 블로그
Android NDK SO File 과 관련 파일 다운사이징 방법 본문
반응형
안드로이드 개발 시 외부 업체의 .so 파일 관련하여 조사한 내용입니다.
안드로이드 개발 시 SO File(Navtive Source Lib) 사용이 증가함에 따라
빌드 시 APK 용량이 커져 줄이는 방안을 모색해 보았습니다.
1. 특정 architecture 타겟을 지정하여 빌드
"armeabi", "armeabi-v7a" 두가지의 SO File 들만 가지고 빌드 시 모든 Android 플랫폼에서 동작 가능합니다.(2018-07-19기준)
위의 방법을 통해 APK 사이즈를 줄일 수 있습니다.
제약조건
- 해당 조건으로 빌드 시 반드시 해당 architecture 타겟 폴더에 SO File 이 위치해 있어야 합니다.
2. architecture 별로 APK를 빌드하여 구글 플레이스토어에 등록
안드로이드 스튜디오의 Gradle 설정에 architecture 타입별로 APK가 생성되는 기능이 있습니다.
이 기능을 통해 하나의 APK에 하나의 architecture SO File을 빌드하여
architecture 별로 생성한 후 구글 플레이스토어에 등록 합니다.
사용자들은 구글 플레이스토어에서 다운받게 되는데 구글에서 사용자 디바이스에 맞는 APK를 내려주어 다운받게 됩니다.
제약조건
- 해당 조건으로 빌드 시 반드시 해당 architecture 타겟 폴더에 SO File 이 위치해 있어야 합니다.
3. 소스 단에서 architecture 구별하여 SO File을 내려받아 동적 로딩
SO File은 동적 라이브러리로써 소스의 시스템함수 loadLibrary, load API를 통해 로드할수 있습니다.
SO File을 서버에서 다운받아 안드로이드 디바이스의 internal Storage에 저장 후 저장 경로를 통해 로드 후 사용 가능합니다.
제약조건
- 소스상에서 디바이스 architecture를 검사하여 해당하는 SO_File을 다운받아야 합니다. (만약 맞지 않을경우 로딩시 런타임 에러 발생)
- 해당 클래스는 저희가 제공하는 targetinterface.jar의 클래스 패키지명, 클래스명, 메서드 명이 동일해야 동작합니다.
- API 실행 전 반드시 .so 파일을 로드 해주셔야 합니다.(System.load(path))
728x90
'android' 카테고리의 다른 글
Android 와 NDK SO File시스템 (0) | 2018.08.21 |
---|---|
adb 특정 텍스트만 필터걸어서 파일쓰기 안드로이드 (0) | 2018.01.30 |
android crash dump (0) | 2017.12.20 |
android google map 좌표들을 이용해 스크린에 꽉차게 (0) | 2017.05.25 |
AppBarLayout 부드럽게 스크롤 (0) | 2017.04.14 |