태그 보관물: Android

GitHub release에 바이너리 첨부 자동화

GitHub에서 release를 생성하면 source code의 snapshot이 zip과 tar.gz로 저장된다. 여기에 추가해서 컴파일된 결과가 자동으로 추가하도록 한다면, 간단히 source code와 연계된 바이너리도 함께 배포할 수 있을 것이다. 이 글에서는 안드로이드 프로젝트를 가정해서 release를 생성할 때 안드로이드 APK를 빌드하고 source code와 함께 배포하는 간단한 workflow를 설명한다. 전체 코드 Event trigger Release에서만 동작하므로 event trigger는 release – published이다. […]

Android recovery image 빌드 설정

1. BoardConfig.mk 수정 TARGET_NO_KERNEL과 TARGET_NO_RECOVERY가 true로 설정되어 있다면 설정한다. 2. device.mk 수정 TARGET_PREBUILT_KERNEL관련 설정을 삭제한다. 3. AndroidBoard.mk 추가 Kernel build 될 때 참고되는 파일이므로 추가해 주고 KERNEL_DEFCONFIG등의 설정을 자신에 맞게 변경해 준다. 4. AndroidKernel.mk 추가 AndroidKernel.mk는 kernel build를 위한 makefile script이다. 5. defconfig file 경로변경 defconfig file이 참조될 수 있도록 kernel/$(ARCH)/configs 아래에 옮겨준다. 6. 상대경로 […]

MinnowboardMAX에 Android 올려 본 내용 정리

Android / Chromium OS / Windows를 올려 볼 수 있는 Intel Baytrail 기반의 개발보드인 MinnowboardMAX에 Android 5.1을 install하는 과정을 설명한다. 필요한 것 들 Minnowboard MAX – 판매하는 곳, 2015년 9월 현재 국내에서 판매하는 곳은 없는것 같다. FTDI cable – Serial 출력을 PC에서 받기 위해 guide 문서에는 TTL-232R을 사용하라고  나와 있는데 Amazon.com에서 배송비 빼고 $23정도에 판매한다. […]

Android emacs (android-host.el) 기능 추가

AOSP에서 제공되는 Emacs용 Andorid 개발환경을 설정한 이후(이 post 참조) 잘 모르는 LISP을 더듬어 가며 추가한 몇 가지 기능을 소개합니다. adb reboot (M-x android-adb-reboot) Module등을 변경한 후에 device를 reset하는 명령어가 없어서 추가했다. 이 기능의 장점을 굳이 꼽자면 shell을 따로 뛰우지 않고 리붓을 할수 있다는거… Module push (M-x android-adb-push-module) Compile한 module을 target에 push 할 때 사용한다. Command를 […]

Cygwin에서 Android systrace 실행 문제

2014년 8월 현재, Cygwin으로 systrace를 사용하려고 하면 zlib 관련한 error가 나면서 동작하지 않는다. AOSP project의 이 링크에 보면 문제를 해결하기 위한 patch가 올려져 있는데 comment를 보니 한동안 받아들여 지지 않다가 현재 source와 달라져서 적용할 수 없게 된 모양이다. 같은 동작을 하도록 약간만 수정해서 이렇게 고쳐 보니 좀 지저분하긴 해도 zlib error 없이 Cygwin에서 systrace를 사용할 […]

Emacs에서 Android 개발 환경 사용

AOSP에는 Emacs에서 Android 개발환경을 사용할 수 있도록 몇몇 el file들을 제공하는데, platform  module build를 주로 하게 되는 나로써는 사용에 부족함이 없는 것 같다. Module build와 기본적인 ADB 조작을 지원하는 이 script들의 기능이 부족하다고 느낀다면 Android 개발환경을 보다 적극적으로 지원하는 android-mode와 같은 project를 고려해 보는것도 좋을 것이다. buildspec.mk 설정 사실 이 기능은 그동안 사용하지 않았었는데, AOSP에서 지원하는 […]

Android의 외부 프로젝트들 (external directory)

Android의 external directory 아래에는 external project들이 들어 있는데, 150개가 넘는 외부 프로젝트들을 보고 있으면 ‘바퀴를 재발명하지 말라’는 격언이 떠오른다. Jellybean version이 release되었을 때 궁금해서 여기저기 찾아보고 처음으로 문서로 만들었는데 Kikat이 나온김에 최신 버전에 맞춰서 업데이트 했다. 다른 reference없어서 README file을 읽어보고 그게 없으면 web에서 찾아 보고 해서 만든 것이어서 오류의 가능성이 있긴 하지만 궁금해 하는 […]

Mac용 AndroidStudio에서 새로운 프로젝트를 만들지 못하는 문제

Mac용 AndroidStudio v0.2.3을 설치하고 처음으로 ‘New Project’를 만드는데 마지막 단계에서 “Failed to import Gradle project:” error popup이 뜨면서 제대로 되지 않는다. 실제로는 project directory와 file들도 모두 생기는데 project가 등록되지 않는다. Error log로 봐서는 build와 관련이 있는 Gradle이 제대로 동작하지 못한 문제인것 같다. Log는 “~/Library/Logs/AndroidStudioPreview/idea.log”에서 볼 수 있다. Android developer page에 Gradle의 import와 관련된 문제가 발생했을 때 […]

Bare git으로 부터 source code 복사하기

Android에 기반한 project를 repo로 mirror로 만들때는 –mirror option을 주어서 bare git을 만든다(지난 posting 참조). 만약 이렇게 만들어진 bare repository로 부터 일반적인 형태의 source repository를 생성하려 한다면 어떻게 해야 할까? 이 posting에서는 git-daemon등을 설치 하지 않고 local에 있는 bare git으로 부터 source 구조를 만들어 내는 방법을 설명한다. Repo Init $ repo init help Usage: repo init […]

Android NDK build architecture 변경하기

아무 설정 없이 ndk를 build 하면 다음과 같이 arm용 library가 만들어진다. $ <NDK_PATH>/ndk-build Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver Gdbsetup : libs/armeabi/gdb.setup Compile thumb : hello-jni <= hello-jni.c SharedLibrary : libhello-jni.so Install : libhello-jni.so => libs/armeabi/libhello-jni.so $ file obj/local/armeabi/libhello-jni.so obj/local/armeabi/libhello-jni.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped NDK에서 build되는 binary의 architecture를 […]