libpngのビルド手順|Android開発

      2018/06/13

libpngスタティックライブラリ作成方法です。Windowsでの手順になります。
以降JNIフォルダapp\src\main\jnilibpngフォルダapp\src\main\jni\libpngとします。
また、本記事時点のlibpngバージョンは1.6.29なので以降のダウンロードフォルダもその内容で記述しています。

ソースファイルのダウンロード

上記サイトのリンク先からlibpngのソースファイルをダウンロードします。

ビルド対象ファイルの配置

  1. ダウンロードしたファイルからlpng1629フォルダ直下の.c.hlibpngフォルダにコピーします
  2. lpng1629\script\pnglibconf.h.prebuiltlibpngフォルダpnglibconf.hにリネームしてコピーします

Makefile

Android.mk

JNIフォルダAndroid.mkを下記のようにします。

LOCAL_PATH := $(call my-dir)

# libpng section
include $(CLEAR_VARS)

LOCAL_MODULE := libpng

LOCAL_SRC_FILES := \
	libpng\png.c \
	libpng\pngerror.c \
	libpng\pngget.c \
	libpng\pngmem.c \
	libpng\pngpread.c \
	libpng\pngread.c \
	libpng\pngrio.c \
	libpng\pngrtran.c \
	libpng\pngrutil.c \
	libpng\pngset.c \
	libpng\pngtest.c \
	libpng\pngtrans.c \
	libpng\pngwio.c \
	libpng\pngwrite.c \
	libpng\pngwtran.c \
	libpng\pngwutil.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/libpng

include $(BUILD_STATIC_LIBRARY)

ndk-buildをすればスタティックライブラリが作成されます。
作成したスタティックライブラリを使用する際には、zlibも必要ですが、Android NDKに含まれているため、使用側でAndroid.mkLOCAL_LDLIBS-lzを追加すればリンクされます。

LOCAL_LDLIBS := -lz

 - Android