除了 make -j 4 ENABLE_PV_LOGGER=1後
發現 也要在opencore/android/Android.mk裡
加
LOCAL_CFLAGS += -UNDEBUG
因為opencore/android/裡的source並不會用到PV_CFLAGS
Tuesday, January 19, 2010
Tuesday, December 8, 2009
android ndk 的makefile
在Application.mk裡可以指定APP_BUILD_SCRIPT
來指定你要的Android.mk
可是在mydroid 跟ndk裡的Android.mk
發現在LOCAL_SHARED_LIBRARIES的用法不太一樣
所以要分開來使用
也就是在mydroid build時要一個Android.mk 而用ndk build時則要另一個
但我在Application.mk中設定APP_BUILD_SCRIPT時
發現取別的名字的話 總是會有LOCAL_MAKEFILE not defined 的error msg
最後看了一下他build 的script
local-makefile = $(lastword $(filter %Android.mk,$(MAKEFILE_LIST))
在這用了makefile的 % character
所以只要把APP_BUILD_SCRIPT設定成 Android.mk結尾的就好了
例如NdkAndroid.mk
來指定你要的Android.mk
可是在mydroid 跟ndk裡的Android.mk
發現在LOCAL_SHARED_LIBRARIES的用法不太一樣
所以要分開來使用
也就是在mydroid build時要一個Android.mk 而用ndk build時則要另一個
但我在Application.mk中設定APP_BUILD_SCRIPT時
發現取別的名字的話 總是會有LOCAL_MAKEFILE not defined 的error msg
最後看了一下他build 的script
local-makefile = $(lastword $(filter %Android.mk,$(MAKEFILE_LIST))
在這用了makefile的 % character
所以只要把APP_BUILD_SCRIPT設定成 Android.mk結尾的就好了
例如NdkAndroid.mk
Saturday, November 28, 2009
android ndk 1.6
這星期用了ndk 1.6
首先要改這個script
http://groups.google.com/group/android-ndk/browse_thread/thread/2127fa52b6aa362c?pli=1
比較特別的是
在Application.mk裡
APP_PROJECT_PATH可以指到別的地方 不一定要在ndk/app底下
另外
LOCAL_SHARED_LIBS
跟LOCAL_LDLIBS的usage還不是很清楚
在mydroid裡LOCAL_SHARED_LIBS可以動
但ndk裡LOCAL_LDLIBS才可以
首先要改這個script
http://groups.google.com/group/android-ndk/browse_thread/thread/2127fa52b6aa362c?pli=1
比較特別的是
在Application.mk裡
APP_PROJECT_PATH可以指到別的地方 不一定要在ndk/app底下
另外
LOCAL_SHARED_LIBS
跟LOCAL_LDLIBS的usage還不是很清楚
在mydroid裡LOCAL_SHARED_LIBS可以動
但ndk裡LOCAL_LDLIBS才可以
Wednesday, November 4, 2009
Monday, November 2, 2009
LOCAL_SDK_VERSION
在Android.mk裡
發現了一個
LOCAL_SDK_VERSION
這是在ApiDemos裡的Android.mk看到的
如果加了
LOCAL_SDK_VERSION := current
就會讓你用sdk的android.jar來編
也就是一些hide的api就不能用了
發現了一個
LOCAL_SDK_VERSION
這是在ApiDemos裡的Android.mk看到的
如果加了
LOCAL_SDK_VERSION := current
就會讓你用sdk的android.jar來編
也就是一些hide的api就不能用了
Wednesday, October 28, 2009
mydroid 找不到sdcard
今天發現我從mydroid build出來的emulator一直mount 不到sdcard
最後發現 我的 /etc/沒有 vold.conf這檔案
然後就把 mydroid/development/data/etc/vold.conf copy 到
out/target/product/generic/system/etc下
然後make systemimage
我可以mount到sdcard了!!!
~
~
~
最後發現 我的 /etc/沒有 vold.conf這檔案
然後就把 mydroid/development/data/etc/vold.conf copy 到
out/target/product/generic/system/etc下
然後make systemimage
我可以mount到sdcard了!!!
~
~
~
Tuesday, September 15, 2009
在Android emulator 上改userdata system 的image max size
之前被問到userdata image要如何改大小
花了很多時間才找到XD
首先從Android build system講起
在mydroid/build/core/definitions.mk裡
有個
define assert-max-file-size的 function
原本以為只要指定
BOARD_FLASH_BLOCK_SIZE 跟BOARD_USERDATAIMAGE_MAX_SIZE
就可以了
但發現他這只是作個檢查的動作而已
不過他這有講到 /proc/mtd的東西
然後看了其他的code
也都是去讀 /proc/mtd 來作partition
dev: size erasesize name
mtd0: 04000000 00020000 "system"
mtd1: 04000000 00020000 "userdata"
mtd2: 04000000 00020000 "cache
然後去checkout android linux kernel的code
下載完首先要switch 到有goldfish的branch
不然預設是msm 裡面沒有goldfish的driver 編kernel也會有error
會跳到linux kernel裡面看的原因是有的embedded linux
會把mtd 的size name 等的information寫在 /drivers/mtd/map下
一個叫mtd_parition的struct裡
在drivers/mtd/devices/goldfish_nand.c下 有看到設定size的code
但他也是從memory中讀值出來而已
static int goldfish_nand_init_device(struct goldfish_nand *nand, int id)
看mtd->size
但是其他的地方都找不到設定size的地方
後來又跳到emulator的source裡看(mydroid/external/qemu)
首先發現了qemu可以讓你指定nand
"-nand name[,readonly][,size=size][,pagesize=size][,extrasize=size][,erasepages=pages][,initfile=file][,file=file]"
然後發現
android在emulator的options裡有加讓你設定nand size的option
-partition-size system/data partition size in MBs
所以 結論就是
在emulator後面加上 -partition-size 就可以設定system userdata image的大小了
# cat /proc/mtd
dev: size erasesize name
mtd0: 07c20000 00020000 "system"
mtd1: 07c20000 00020000 "userdata"
mtd2: 04000000 00020000 "cache"
花了很多時間才找到XD
首先從Android build system講起
在mydroid/build/core/definitions.mk裡
有個
define assert-max-file-size的 function
原本以為只要指定
BOARD_FLASH_BLOCK_SIZE 跟BOARD_USERDATAIMAGE_MAX_SIZE
就可以了
但發現他這只是作個檢查的動作而已
不過他這有講到 /proc/mtd的東西
然後看了其他的code
也都是去讀 /proc/mtd 來作partition
dev: size erasesize name
mtd0: 04000000 00020000 "system"
mtd1: 04000000 00020000 "userdata"
mtd2: 04000000 00020000 "cache
然後去checkout android linux kernel的code
下載完首先要switch 到有goldfish的branch
不然預設是msm 裡面沒有goldfish的driver 編kernel也會有error
會跳到linux kernel裡面看的原因是有的embedded linux
會把mtd 的size name 等的information寫在 /drivers/mtd/map下
一個叫mtd_parition的struct裡
在drivers/mtd/devices/goldfish_nand.c下 有看到設定size的code
但他也是從memory中讀值出來而已
static int goldfish_nand_init_device(struct goldfish_nand *nand, int id)
看mtd->size
但是其他的地方都找不到設定size的地方
後來又跳到emulator的source裡看(mydroid/external/qemu)
首先發現了qemu可以讓你指定nand
"-nand name[,readonly][,size=size][,pagesize=size][,extrasize=size][,erasepages=pages][,initfile=file][,file=file]"
然後發現
android在emulator的options裡有加讓你設定nand size的option
-partition-size
所以 結論就是
在emulator後面加上 -partition-size 就可以設定system userdata image的大小了
# cat /proc/mtd
dev: size erasesize name
mtd0: 07c20000 00020000 "system"
mtd1: 07c20000 00020000 "userdata"
mtd2: 04000000 00020000 "cache"
Subscribe to:
Posts (Atom)