Android 정렬 (Feat. zipalign)
·
mobile/android
0. 들어가며빌드 단계에서 자동으로 이뤄지기 때문에 사람들이 모르고 지나칠 수 있는데, 사실 빌드 시 apk 파일을 정렬(뷰 정렬, 텍스트 가운데 정렬 이런거 아님)하는 작업이 이루어진다. 몰랐던 부분이라 공부한 내용을 정리해본다. 1. 정렬(Android APK Align) 이란?zipalignzipalign은 ZIP 압축 파일의 정렬 도구로, 압축되지 않은 모든 파일이 파일의 시작 위치를 기준으로 정렬되도록 도와줍니다.이를 통해 파일을 *mmap(2)을 통해 직접 액세스할 수 있어, 데이터를 RAM에 복사할 필요가 없어지고 앱의 메모리 사용량이 줄어듭니다.* mmap이란 메모리 매핑 기술로, 파일을 RAM에 복사하지 않고 파일 자체를 메모리처럼 바로 읽는 방식이다.Android 공식문서 중 zipal..
APK 파일 구조
·
mobile/android
Android를 쓰는 사람들이 설치하는 앱(.apk) 파일은 여러 소스와 리소스를 모아 둔 압축 파일(Android Package)이다.   1. Assets 폴더데이터 파일(db, json, text 파일)이나 폰트 파일, 동영상 파일처럼 용량이 큰 파일이 저장됨해당 폴더 내의 파일들은 컴파일 되지 않고 원본 형태 그대로 저장되며 런타임에서 직접 액세스함무조건 생성되는 폴더는 아니고 필요에 따라 생성됨. 2. Lib 폴더네이티브 코드(C/C++로 작성된 라이브러리)가 저장됨네이티브 코드: CPU 아키텍처나 운영체제 등 각각의 플랫폼에 맞게 실행할 수 있도록 플랫폼 별로 컴파일 된 코드Java/Kotlin 소스에서 JNI(Java Native Interface)를 통해 네이티브 코드를 사용할 수 있음.A..
상용 앱 APK 추출해보기 (Feat. ADB)
·
mobile/android
사람들이 많이 사용하는 상용 앱의 APK 파일을 추출하는 방법은 다양한데, 그 중 ADB를 이용해 추출하는 방법을 정리해봄.  ⚠️ MAC 기준으로 작성함.1. ADB 설치1) Android Studio 설치Android Studio를 설치했다면 ADB를 별도로 설치할 필요가 없음. 2) Homebrew로 설치homebrew가 설치되어있다면 아래의 명령어 중 하나를 선택하여 실행하면 됨.brew cask install android-platform-toolsbrew install --cask android-platform-tools 3) Android SDK 설치 SDK 플랫폼 도구 출시 노트  |  Android Studio  |  Android DevelopersAndroid SDK 플랫폼 도구는 A..
Android Build Process (1)
·
mobile/android
Task :app:preBuild UP-TO-DATE Task :app:preDebugBuild UP-TO-DATE Task :app:mergeDebugNativeDebugMetadata NO-SOURCE Task :app:generateDebugResValues Task :app:mapDebugSourceSetPaths Task :app:checkDebugAarMetadata Task :app:generateDebugResources Task :app:packageDebugResources Task :app:createDebugCompatibleScreenManifests Task :app:extractDeepLinksDebug Task :app:parseDebugLocalResources Task :..
[LLM] Ollama와 Continue 플러그인으로 쉽게 개발하기
·
etc./ai
개발 중 막히거나 모르는 부분이 생길 때, 코드를 더 개선해보고 싶은데 답이 안나올 때 누구나 한번 쯤은 ChatGPT 같은 LLM 모델에 코드를 복붙해서 GPT에 답을 구한 경험이 있을 겁니다. 언제나 이렇게 사용할 수 있으면 좋겠지만 ChatGPT나 Gemini 같은 유료 모델의 경우 무료버전을 사용한다면 매달 어마어마한 구독료를 내야 하며, 회사나 보안 상의 이유로 코드가 유출되면 안되는 경우 ChatGPT 사용에 제약이 따르기도 하죠. 저도 어떻게 하면 좋을 지 방법을 찾아보던 중 Ollama와 Continue라는 플러그인에 대해 알게되어 한번 소개해봅니다. 선 요약Ollama: 로컬에서 쓰는 LLMContinue: IDE에서 로컬 LLM 돌리는 플러그인Ollama + Continue: 로컬에서 ..