180bpm

Android에서 IL2CPP 적용하기. 본문

Develop/Unity

Android에서 IL2CPP 적용하기.

powdersnow 2017. 7. 10. 15:09

앱 속도도 빨라지고 코드 언패킹도 힘들어지기때문에 계속 적용하려고 고민하다가,

우리께임 데미지 MOD가 떠버려서... 생각난김에 적용.




1. 라이브러리 충돌 문제

우리가 사용중인 라이브러리중 adbrix, facebook sdk에서 이슈 발생

adbrix는 ios코드들을 전처리기로 감쌈.


2. 특정 함수들에서 속도 저하 문제

패치씬에서 1분 이상 기다리는 문제가 생겨서 원인 추적하다보니 요 구문이 문제가 되었다.

string[] lines = m_www.text.Split(new string[] { "\n""\r\n" }, StringSplitOptions.RemoveEmptyEntries);

string wwwText = m_www.text; if (m_www.text.Contains("\r")) { wwwText = wwwText.Replace("\r"""); } string[] lines = wwwText.Split('\n');

요렇게 바꿔줬다



3. facebook SDK 충돌 문제 + ref count 65536 문제

우리는 마케팅용도로만 사용중이고 그외 기능(로그인등)은 사용하지 않아서 해결 가능했던 문제.

우리가 사용중이던 7.8.0에는 il2cpp 대응 문제가 있었다

그래서 7.9.0으로 업그레이드 하는데..이때 jar resolver 지원이 들어가버려서;;

불필요한 라이브러리가 대거 추가되서 고생함.


그래서 방법은

1. aar을 jar 파일로 바꾸고 resource에서 쓰는 외부 라이브러리 (ex. compat, cardvirew) 관련 데이터 전부 삭제

2. 다시 arr로 압축

3. 해결


만약 꼭 써야 한다면..다른 라이브러리를 지우거나 proguard를 통해 해결할 수 있을텐데

proguard 쓰기엔 너무 번잡해진다..

Comments