| 검색 | ?
대문 / 기타 / 미분류 / 임시작업공간

임시작업공간

1.1. Android 개발

  • Android SDK update (Command Line)
    # cd <SDK-directory>        # 반드시 해당 SDK디렉토리에서 실행해주어야 정상적인 SDK update가 수행됨.
    # ./tools/android update sdk --no-ui
    
  • Android NDK 에서의 graphics 구현 선택
    1. OpenGL ES 를 사용한 접근이 가장 기본 근간임.
    2. AndroidBitmap_getInfo 를 통한 JNI graphics 를 통한 접근으로 하는 방법
    3. FrameBuffer를 직접 접근하여 그리는 방법 (최근 안드로이드에서는 권한이 허용되지 않아서 사용할 수 없음)
      • Android에서 Frame Buffer 는 2개(또는 그 이상)의 화면을 담을만한 메모리 맵핑을 하고 좌측 상단에 해당하는 메모리 주소를 변경하는 방식으로 화면을 절체하도록 구현함
  • NDK에서의 Startup entry
    1. NDK로 만든 Android App의 실행파일은 shared library (shared object) 형태에서 시작하며 최신 안드로이드 버젼의 경우 의존관계에 있는 library 들이 모두 탑재되어 실행이 되기는 하지만 이전 버젼에서는 그렇지 않기 때문에 호환을 위해서 NDK main에 해당하는 부분은 의존관계를 최소한으로 하는 형태로 만들고 여기서 dlopen을 통해서 실제 main역할을 하는 library를 호출하도록 하는 bootstrap형태가 고려해볼만함. (아니면 그냥 하나의 library로 모든 소스를 합치는 방법도 괜찮음)
    2. 가장 기본적인 구조로부터의 시작은 "ANativeActivity_onCreate" 함수로부터 시작됨.

    3. "native_app_glue" 모듈을 사용하여 "android_main"함수에서 시작하도록 할 수 있음. (좀더 유연한 구현을 위한 참고가 되므로 "<NDK-directory>/sources/androis/native_app_glue/" 디렉토리의 소스와 헤더는 한번쯤 보는게 좋음)

    4. NDK Package 구성에 맞는 "AndroidManifest.xml" 파일의 작성
      <?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="com.minzkn.pgl.hwport"
            android:versionCode="1"
            android:versionName="1.0">
          <uses-sdk android:minSdkVersion="9" />
          <!-- Tell the system this app requires OpenGL ES 1.0. -->
          <uses-feature android:glEsVersion="0x00010000" android:required="true" />
          <application android:label="@string/app_name" android:hasCode="false">
              <activity android:name="android.app.NativeActivity"
                        android:label="@string/app_name">
                  <meta-data android:name="android.app.lib_name" android:value="hwport_activity" />
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
          </application>
      </manifest>
      
    5. source build를 위한 Android.mk(반드시 파일명이 이것일 필요는 없음) 파일 작성 및 ndk-build를 이용한 빌드

  • Signature 값 없는 방법(출처: [http]http://dev.re.kr/72[])

1.2. Xlib를 이용한 root 하위 window의 alpha처리 방법 #1






Copyright ⓒ MINZKN.COM
All Rights Reserved.