新的build system裡
有maruro まぐろ tuna つな
其實還有toro とろ 但還沒放上AOSP
都在這有說明
https://groups.google.com/group/android-building/browse_thread/thread/ab34b1144a96bcd8
Showing posts with label android_build_system. Show all posts
Showing posts with label android_build_system. Show all posts
Thursday, November 17, 2011
Tuesday, November 15, 2011
LOCAL_DEX_PREOPT
今天抓了Icecream 的AOSP
然後隨便build一個apk
發現apk竟然不能裝
INSTALL_FAILED_DEXOPT
發現apk裡的classes.dex不見了
跑到外面來變odex
看了一下build system的code
原來是新的要加上 LOCAL_DEX_PREOPT := false
他才不會幫你作pre-dexopt的動作
然後隨便build一個apk
發現apk竟然不能裝
INSTALL_FAILED_DEXOPT
發現apk裡的classes.dex不見了
跑到外面來變odex
看了一下build system的code
原來是新的要加上 LOCAL_DEX_PREOPT := false
他才不會幫你作pre-dexopt的動作
Monday, April 25, 2011
override system ld dirs
在mydroid build時
有時會需要link device上的library
(這方法有待商確 畢竟在compile時還是用AOSP上的header file 但至少目前出來的binary可以在device上link)
而需要改變-L的location, 不要讓他去link device的system/lib
在看了android build system裡的code之後
發現可以使用 TARGET_GLOBAL_LD_DIRS 這個var
也就是在自己的Android.mk裡
最後加上下面這行override掉他
TARGET_GLOBAL_LD_DIRS:=-L$(path to the device library)
有時會需要link device上的library
(這方法有待商確 畢竟在compile時還是用AOSP上的header file 但至少目前出來的binary可以在device上link)
而需要改變-L的location, 不要讓他去link device的system/lib
在看了android build system裡的code之後
發現可以使用 TARGET_GLOBAL_LD_DIRS 這個var
也就是在自己的Android.mk裡
最後加上下面這行override掉他
TARGET_GLOBAL_LD_DIRS:=-L$(path to the device library)
Friday, April 22, 2011
Argument list too long
最近在Android build code 時會遇到
Argument list too long的問題
後來發現在android build system有個patch了
http://goo.gl/hCv3A
這個問題的背後
在這裡有說
http://goo.gl/LAGrR
http://goo.gl/D30Wq
Argument list too long的問題
後來發現在android build system有個patch了
http://goo.gl/hCv3A
這個問題的背後
在這裡有說
http://goo.gl/LAGrR
http://goo.gl/D30Wq
Wednesday, March 9, 2011
softlink for Android build system
最近試著在mydroid裡 某個folder下用softlink 指到mydroid外的folder
而發現mydroid一直找不到我的這個softlink指的地方
看了看build/底下的code
最後原來是
http://android.git.kernel.org/?p=platform/build.git;a=blob;f=tools/findleaves.py;h=0adf188f9bb5b1e8ced951795cbc8bafdd43cfaf;hb=HEAD#l31
裡的os.walk() default是沒有follow softlink的
http://docs.python.org/library/os.html#os.walk
所以把原本裡的os.walk(rootdir)改成
os.walk(rootdir, TRUE, NONE, TRUE) 就好了
而發現mydroid一直找不到我的這個softlink指的地方
看了看build/底下的code
最後原來是
http://android.git.kernel.org/?p=platform/build.git;a=blob;f=tools/findleaves.py;h=0adf188f9bb5b1e8ced951795cbc8bafdd43cfaf;hb=HEAD#l31
裡的os.walk() default是沒有follow softlink的
http://docs.python.org/library/os.html#os.walk
所以把原本裡的os.walk(rootdir)改成
os.walk(rootdir, TRUE, NONE, TRUE) 就好了
Thursday, November 25, 2010
Android PREBUILT_PACKAGE
最近發現 Prebuilt java libaray 的style 跟一般的BUILD_PACKAGE大不相同呀
http://groups.google.com/group/android-building/browse_thread/thread/26c5ec332fe924a2
http://groups.google.com/group/android-building/browse_thread/thread/f7f57432a677ca85
http://groups.google.com/group/android-building/browse_thread/thread/26c5ec332fe924a2
http://groups.google.com/group/android-building/browse_thread/thread/f7f57432a677ca85
Monday, July 5, 2010
add prebuild lib in apk under mydroid
在mydroid build中
有個LOCAL_JNI_SHARED_LIBRARY可以指定自己的jni
但是這前提是這jni lib也是在某個LOCAL_MODULE中編出來的
如果想直接把這lib包進apk中
看了看build/core/package.mk
可以使用下面的密技:
$(shell cp $(wildcard $(LOCAL_PATH)/libs/armeabi/*.so) $(TARGET_OUT_INTERMEDIATE_LIBRARIES))
LOCAL_JNI_SHARED_LIBRARIES:= your_prebuild_lib
有個LOCAL_JNI_SHARED_LIBRARY可以指定自己的jni
但是這前提是這jni lib也是在某個LOCAL_MODULE中編出來的
如果想直接把這lib包進apk中
看了看build/core/package.mk
可以使用下面的密技:
$(shell cp $(wildcard $(LOCAL_PATH)/libs/armeabi/*.so) $(TARGET_OUT_INTERMEDIATE_LIBRARIES))
LOCAL_JNI_SHARED_LIBRARIES:= your_prebuild_lib
Thursday, May 20, 2010
使用TARGET_GLOBAL_LD_DIRS
在這個hack裡
http://go2.wordpress.com/?id=725X1342&site=xorl.wordpress.com&url=http%3A%2F%2Fwww.frasunek.com%2Fproto_ops.tgz&sref=http%3A%2F%2Fxorl.wordpress.com%2F2009%2F08%2F18%2Fcve-2009-2692-linux-kernel-proto_ops-null-pointer-dereference%2F
用了TARGET_GLOBAL_LD_DIRS
來用自己的linker script
http://go2.wordpress.com/?id=725X1342&site=xorl.wordpress.com&url=http%3A%2F%2Fwww.frasunek.com%2Fproto_ops.tgz&sref=http%3A%2F%2Fxorl.wordpress.com%2F2009%2F08%2F18%2Fcve-2009-2692-linux-kernel-proto_ops-null-pointer-dereference%2F
用了TARGET_GLOBAL_LD_DIRS
來用自己的linker script
Thursday, May 6, 2010
android build system
在combo/linux-arm.mk
default 是 build for armv5te
另外在這makefile裡還有很多compiler flags
會找到這是因為要試試LOCAL_NO_DEFAULT_COMPILER_FLAGS=true
不然compile都會先找framework裡的header (無奈)
default 是 build for armv5te
另外在這makefile裡還有很多compiler flags
會找到這是因為要試試LOCAL_NO_DEFAULT_COMPILER_FLAGS=true
不然compile都會先找framework裡的header (無奈)
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就不能用了
Subscribe to:
Posts (Atom)