类加载器,class,method invoke,constructor,aop
怎样用eclipse来开发android源码
1、建立基本的android开发环境
请参考官方文档或<android模拟器在ubuntu8.10的安装>
2、编译android源码
android源码根目录下通过make进行编译,请注意一些配置,具体可参考<android源码的编译>
$ make PRODUCT-sdk-sdk
编译完成后会在/work/mydroid2.2/out/host/linux-x86/sdk/目录生成sdk
3、把eclipse工程配置文件复制到android源码根目录下
cp development/ide/eclipse/.classpath ./
chmod u+w .classpath # Make the copy writable
删除下面两行
<classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/google-common_intermediates/javalib.jar"/>
<classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/gsf-client_intermediates/javalib.jar"/>
添加 <classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/javalib.jar"/>
4、修改eclipse程序的配置
1)、修改eclipse缓存设置
把eclipse.ini(在eclipse软件的安装目录下)的3个值改为下面的值:
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m
2)、把android-formatting.xml和android.importorder导入eclipse
android-formatting.xml、.classpath和android.importorder都放在 development/ide/eclipse/下
android-formatting.xml用来配置eclipse编辑器的代码风格;android.importorder用来配置 eclipse的import的顺序和结构。
在window->preferences->java->Code style->Formatter中导入android-formatting.xml
在window->preferences->java->Code style->Organize Imports中导入android.importorder
3)、安装anyedit插件(可选)
在http://andrei.gmxhome.de/anyedit/下载并导入eclipse中
5、把android源码作为一个工程导入eclipse
导入前先检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹),.classpath里多余的路径可删除
新建Java Project(不是android project,否则会破坏android源码),选择从已存在的工程导入,工程名任意,完成。
eclipse要设置为不要自动编译,即Project菜单中的Build automatically要去掉勾。
6、在eclipse中修改
导入源代码之后,可以点build编译一次,一般编译之后还是有错的。可以在eclipse中修改。
展开packages/providers/CalendarProvider/src
展开包: com.android.providers.calendar
右键点击包com.android.providers.calendar
选择 "new file"
在对话框中选择点击 "Advanced >>" 按钮, 可以看到"Link to file in the file system" checkbox,
勾选上 checkbox. 这时 "Browse..." 可用.
点击 "Browse..." 按钮,选择EventLogTags.java (e.g.,out/target/common/obj/APPS/CalendarProvider_intermediates/src/src/com/android/providers/calendar/EventLogTags.java)
点击OK
点击 Finish (in "New File")
同样的方式修改com.android.providers.contacts的问题
7、eclipse上调试android里的程序。
先执行:
cd android源码目录
. build/envsetup.sh
lunch 1 # to build the emulator
emulator & # you should see a GUI picture of a phone
ddms & # you should get a splufty debugging console
然后在eclipse中配置调试类型和端口:
在Run->Debug Configurations->Remote java application上双击,然后,”Host:”设为localhost,”Port:”设为8700,”Connection Type”为Standard(Socket Attach)
然后“Apply”
注意,在点击”Debug”时苦出错,说8700端口被占用,那么把DDMS程序关掉,重新打开DDMS就OK了。如果提供连不到VM错误时,请注意,要先在DDMS中选中某一进程(对应某一应用程序),才能在eclipse执行 Debug。
在eclipse调试时,可以设断点、单步调试。估计google团队也是这样开发、调试android应用程序的
启动模拟器:
./out/host/linux-x86/bin/emulator -avd android2.2 -kernel ./prebuilt/android-arm/kernel/kernel-qemu -ramdisk ./out/target/product/generic/ramdisk.img -system ./out/target/product/generic/system.img -skin ./sdk/emulator/skins/HVGA -sdcard ./out/host/linux-x86/bin/sdcard.img &
怎样用eclipse来开发android源码
1、建立基本的android开发环境
请参考官方文档或<android模拟器在ubuntu8.10的安装>
2、编译android源码
android源码根目录下通过make进行编译,请注意一些配置,具体可参考<android源码的编译>
$ make PRODUCT-sdk-sdk
编译完成后会在/work/mydroid2.2/out/host/linux-x86/sdk/目录生成sdk
3、把eclipse工程配置文件复制到android源码根目录下
cp development/ide/eclipse/.classpath ./
chmod u+w .classpath # Make the copy writable
删除下面两行
<classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/google-common_intermediates/javalib.jar"/>
<classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/gsf-client_intermediates/javalib.jar"/>
添加 <classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/javalib.jar"/>
4、修改eclipse程序的配置
1)、修改eclipse缓存设置
把eclipse.ini(在eclipse软件的安装目录下)的3个值改为下面的值:
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m
2)、把android-formatting.xml和android.importorder导入eclipse
android-formatting.xml、.classpath和android.importorder都放在 development/ide/eclipse/下
android-formatting.xml用来配置eclipse编辑器的代码风格;android.importorder用来配置 eclipse的import的顺序和结构。
在window->preferences->java->Code style->Formatter中导入android-formatting.xml
在window->preferences->java->Code style->Organize Imports中导入android.importorder
3)、安装anyedit插件(可选)
在http://andrei.gmxhome.de/anyedit/下载并导入eclipse中
5、把android源码作为一个工程导入eclipse
导入前先检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹),.classpath里多余的路径可删除
新建Java Project(不是android project,否则会破坏android源码),选择从已存在的工程导入,工程名任意,完成。
eclipse要设置为不要自动编译,即Project菜单中的Build automatically要去掉勾。
6、在eclipse中修改
导入源代码之后,可以点build编译一次,一般编译之后还是有错的。可以在eclipse中修改。
展开packages/providers/CalendarProvider/src
展开包: com.android.providers.calendar
右键点击包com.android.providers.calendar
选择 "new file"
在对话框中选择点击 "Advanced >>" 按钮, 可以看到"Link to file in the file system" checkbox,
勾选上 checkbox. 这时 "Browse..." 可用.
点击 "Browse..." 按钮,选择EventLogTags.java (e.g.,out/target/common/obj/APPS/CalendarProvider_intermediates/src/src/com/android/providers/calendar/EventLogTags.java)
点击OK
点击 Finish (in "New File")
同样的方式修改com.android.providers.contacts的问题
7、eclipse上调试android里的程序。
先执行:
cd android源码目录
. build/envsetup.sh
lunch 1 # to build the emulator
emulator & # you should see a GUI picture of a phone
ddms & # you should get a splufty debugging console
然后在eclipse中配置调试类型和端口:
在Run->Debug Configurations->Remote java application上双击,然后,”Host:”设为localhost,”Port:”设为8700,”Connection Type”为Standard(Socket Attach)
然后“Apply”
注意,在点击”Debug”时苦出错,说8700端口被占用,那么把DDMS程序关掉,重新打开DDMS就OK了。如果提供连不到VM错误时,请注意,要先在DDMS中选中某一进程(对应某一应用程序),才能在eclipse执行 Debug。
在eclipse调试时,可以设断点、单步调试。估计google团队也是这样开发、调试android应用程序的
启动模拟器:
./out/host/linux-x86/bin/emulator -avd android2.2 -kernel ./prebuilt/android-arm/kernel/kernel-qemu -ramdisk ./out/target/product/generic/ramdisk.img -system ./out/target/product/generic/system.img -skin ./sdk/emulator/skins/HVGA -sdcard ./out/host/linux-x86/bin/sdcard.img &