編輯:關於Android編程
如果下載了完整的Android項目的源代碼,則可以在prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin目錄下找到交叉編譯工具,比如Android所用的arm-eabi-gcc-4.2.1。
Android並沒有采用glibc作為C庫,而是采用了Google自己開發的Bionic Libc。官方自帶的Toolchain(prebuilt)也是基於Bionic Libc而並非glibc的。這使得其他Toolchain來用於Android要比較麻煩。
多數的Linux愛好者使用的Toolchain是在http://www.codesourcery.com/gnu_toolchains/arm/download.html下載的一個通用的Toolchain。
它用來編譯和移植Android的Linux內核是可行的,因為內核並不需要C庫,但是開發Android應用程序時,直接采用其他的Toolchain都比較麻煩。
而只有編譯的應用程序采用靜態編譯的方式才能運行於Android模擬器中,這顯然是實際開發中所不能接受的方式。目前尚沒有看到說明成功移植其他交叉編譯器來編譯Android應用程序的資料。(???)
與glibc相比,Bionic Libc有如下一些特點:
[cpp]
-1 采用BSD License,而不是glibc的GPL License;
-2 大小只有大約200k,比glibc差不多小一半,且比glibc更快;
-3 實現了一個更小、更快的pthread;
-4 提供了一些Android所需要的重要函數,如”getprop”,“LOGI”等;
-5 不完全支持POSIX標准,比如C++ exceptions,wide chars等;
-6 不提供libthread_db和libm的實現。(???)
另外,Android中所用的其他一些二進制工具也比較特殊:
[cpp]
-1 加載動態庫時使用的是/system/bin/linker,而不是常用的/lib/ld.so;
-2 prelink工具不是常用的prelink,而是 apriori,其源代碼位於build/tools/apriori;
-3 strip工具也沒有采用常用的strip,即prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin目錄下的arm-eabi-strip,而是位於out/host/linux-x86/bin/的soslim工具。
解決底層問題方法:解除Android系統的耦合
[cpp]
1 將Dalvik於bionic以及硬件驅動剝離開
2 修改Dalvik以支持標准glibc和GNU/Linux
3 把Dalvik當作普通應用程序
4 Dalvik可被單獨優化和改進
在做android UI布局時,用了LinearLayout嵌套,發現效果並不如我預料一般查了下資料,說是要設置layout_weight屬性資料說得不是很清
Android 實現微信,微博,微信朋友圈,QQ分享的功能一、去各自所在的開發者平台注冊相應的Key值;引入相關jar包、權限等二、ShareUtil工具類import
android4.4 webview chromium是單進程的,圖中所有組件都運行在Browser進程中。 按從上而下的順序介紹這張圖中與顯示網頁相關的chromiu
一、效果:我們看到很多軟件的通訊錄在右側都有一個字母索引功能,像微信,小米通訊錄,QQ,還有美團選擇地區等等。這裡我截了一張美團選擇城市的圖片來看看;我們今天就來實現圖片