把常用的應用程序編譯到img文件中,就成了系統的一部分,用戶不必自己安裝,當然也卸載不了;
同時也可以刪減系統自帶的應用程序,精簡系統;
1.\build\target\proct 目錄下generic.mk文件:
java代碼 收藏代碼
PRODUCT_PACKAGES := \
AccountAndSyncSettings \
DeskClock \
AlarmProvider \
Bluetooth \
Calculator \
Calendar \
Camera \
testMid \
CertInstaller \
DrmProvider \
Email \
Gallery3D \
LatinIME \
Launcher2 \
Mms \
Music \
我們添加一個testMid \ 應用名稱。
2.把testMid包放入
\packages\apps 目錄下,修改android.mk文件。
Java代碼 收藏代碼
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := testMid
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
註:LOCAL_PACKAGE_NAME := testMid (包名必須和generic.mk中添加的相同)
編譯源碼,可以看到在
\out\target\proct\smdkv210\system\app
目錄下生存了testMid.apk了。這時system.img也包含了此應用。
-------------------------------------------------------------------
特殊情況:有時,應用需要包含jar包,這時的app導入源碼時會出現問題:
MODULE.TARGET.JAVA_LIBRARIES.libarity already defined by ... stop
由於 LOCAL_STATIC_JAVA_LIBRARIES := libarity 會引發錯誤信息。
目前解決方法是:
\build\core 目錄下修改base_rules.mk
注釋掉錯誤信息:
ifdef $(mole_id)
#$(error $(LOCAL_PATH): $(mole_id) already defined by $($(mole_id)))
endif
$(mole_id) := $(LOCAL_PATH)
--重新編譯,這時可以通過了。
(2)、刪除原廠(Telchips)帶源碼的應用程序,如DTV_DVBT
在/device/telechips/m801/device.mk
注釋掉相應語句:
# PRODUCT_PACKAGES += \
# SampleDVBTPlayer \
同時,在/out/target/proct/m801/system/app 找到相應的.APK包,並刪除
㈡ 請問怎麼編譯安卓軟體
呵呵,你學過java吧,基本功就有了,安卓軟體是用java來寫的~不過我覺得安卓軟體是不用編譯的,因為裡面的主程序是格式化的xml文件,在軟體成形的過程中只是把一些文件打包起來就行了,你可以試下把安卓軟體的後綴名改成zip,就可以看見源程序和文件了~然後呢,你要想做安卓軟體的話,先搭建一個安卓的開發環境,用到的東西有Myeclipse這個軟體(你應該知道的),然後到網上下載安卓開發的SDK即開發字典~有一本叫安卓開發案例的書,可以看下,另外網上有很多的視頻教程~PS:我自己之前只寫過一個安卓的HELLO,WORLD!,由於大一事情比較多就沒有繼續研究了,如果你有問題可以CALL我哦,我們一起學~
㈢ vs2013用c#做的項目如何讓它在安卓手機上運行用vs015編譯後可以嗎
一、在當前VS中的C#不支持安卓的開發。
1、C#是基於.net技術的,也就是說,用它編寫的源文件經過編譯後,得到一種中間代碼,在安裝有.net支持庫的電腦上,這種中間代碼能被智能設備邊翻譯邊持行。
2、如果有一天,有軟體廠商(或個人)編寫出能在安卓上安裝的.net支持庫的話,用C#編寫並編譯的軟體才可能在安卓上運行。
3、基於C#中ASP.net編寫的網站、網頁,要正確安置在運行有IIS的win server伺服器上,能在安卓上被常用的瀏覽器打開,就象打開普通的網站一樣。
二、當前的安卓開發一般基於JAVA。
1、最常用的環境是:1、JAVA JDK環境。2、 android SDK ADT插件 。3、開發軟體 Eclipse。
2、此外,Embarcadero RAD Studio XE 10也能支持安卓開發。不過這東西比較新,好不好用就不清楚了。以delphi和C++ Builder一慣的作風,應該是簡潔干凈好用的。
㈣ apk軟體是用什麼語言編寫和編譯的如何開發滴
APK是類似Symbian Sis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執行即可安裝。 apk文件和sis一樣最終把android sdk編譯的工程打包成一個安裝程序文件格式為apk。 APK文件其實是zip格式,但後綴名被修改為apk,通過UnZip解壓後,可以看到Dex文件,Dex是Dalvik VM executes的全稱,即Android Dalvik執行程序,並非Java ME的位元組碼而是Dalvik位元組碼。一個APK文件結構為: META-INF Jar文件中常可以看到 res 存放資源文件的目錄 AndroidManifest.xml 程序全局配置文件 classes.dex Dalvik位元組碼 resources.arsc 編譯後的二進制資源文件總結下我們發現Android在運行一個程序時首先需要UnZip,然後類似Symbian那樣直接,和Windows Mobile中的PE文件有區別,這樣做對於程序的保密性和可靠性不是很高,通過dexmp命令可以反編譯,但這樣做符合發展規律,微軟的 Windows Gadgets或者說WPF也採用了這種構架方式。在Android平台中dalvik vm的執行文件被打包為apk格式,最終運行時載入器會解壓然後獲取編譯後的androidmanifest.xml文件中的permission分支相關的安全訪問,但仍然存在很多安全限制,如果你將apk文件傳到/system/app文件夾下會發現執行是不受限制的。
㈤ Android工程編譯順序是怎麼樣的先編譯哪個模塊,後編譯哪個模塊由誰來決定的
在ActivityManifest.xml聲明的Activity中,含有
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
是最先執行的,其它類就的順序在這個主函數中先調用或跳轉哪個就是哪個了
㈥ 有沒有哪個安卓軟體可以編譯並運行java代碼
Sand是一個Android平台下的Java集成開發環境(IDE)。首先,Sand包含了一個功能強大的Java編輯器,支持Java關鍵字高亮,顯示行號,多文件編輯,支持藍牙鍵盤,自動對齊,自動補足等;其次,Sand是一個完整的Java編譯器,可以用於編譯Java工程;最後,Sand可以運行編譯好的Java工程,有專門的控制台負責輸入和輸出。
總之,Sand將您的Android設備華麗變身為一個真正的Java開發工具,您可以隨時隨地編寫Java程序。
㈦ 安卓手機為什麼會卡
1、進入手機管家界面,選擇「一鍵優化」
2、等待系統初步掃描手機中的垃圾文件,可以釋放一部分內存。
3、在手機管家中,選擇「手機瘦身」
4、等待應用掃描手機中的文件,掃描完成後可以進行一些大小文件的選擇性刪除。
1、安卓系統代碼開源
眾所周知安卓系統最大優勢是開源,系統源碼可以被公眾使用並且對其修改和發行,允許任何移動終端廠商和開發者加入到Android聯盟中來。但是開源同樣也存在著弊端,那就是應用質量參差不齊以及標准雜亂無章。
開源大大降低了安卓系統開發者的門檻,而一個單純功能的簡單應用由於代碼質量粗糙,很可能要佔用200MB RAM。如果手機運存只有2GB,卡頓會變得特別明顯。
我們操作安卓手機的時候,有時候點開一個瀏覽器軟體,後台會自動喚醒有利益相關的幾款APP,即使安卓原生系統也無能為力。畢竟這一機制後面,是彼此應用的`利益鏈條,而對於國內應用市場,谷歌更是鞭長莫及。大量的程序運行勢必拖慢了手機的運行速度,手機操作起來就無法順暢。
2、系統沉澱垃圾
微信作為如今最常用通訊軟體,安卓版安裝包大小是30MB;不過半年以後再去看這個應用,它的內存佔用可以達到500MB甚至更多。這種情況在視頻軟體里隨處可見,尤其一些社交和音樂/視頻應用。積年累月當應用把手機存儲快要堆滿了,系統運行速度肯定越來越慢。
3、系統版本無法升級
根據報告顯示,在去年末Android5.0及其以上(Android 5.1和Android 6.0)的市場份額僅佔全部安卓陣營的26%。換句話說,三分之二的用戶還停留在Android 4.X時代,為什麼強調這個分水嶺,要從Android5.0說起。Android 5.0系統即徹底從Dalvik轉換到ART,在系統轉換以前:應用在運行的過程中,虛擬機Dalvik通過一個叫JIT(Just-in-time)的解釋器動態的進行編譯並執行,這種虛擬機模式會大大拖慢系統的運行效率。作為對比,ART模式則是在用戶安裝應用時就進行預編譯操作,將原本在程序運行中時的編譯動作提前到應用安裝時。在省去解釋代碼這一過程之後,應用的運行效率會更高。
完成這種更新延遲的根本在於很多廠商在手機售出之後很少進行系統升級推送,同時大量消費者又沒有更新手機系統的習慣。很多手機系統卡在Android4.4,而越來越多的新應用卻是為了適配更高系統打造的,所以手機卡頓不可避免。
卡頓了用戶需要怎麼做
怎樣解決手機越用越卡?第一需要有一台能保障系統定期更新的手機;在這一基礎上定期對手機內存清理,把碎片和部分緩存信息清理干凈。更進一步操作還會利用到系統自帶防火牆或者第三方自啟動管理軟體,根據使用習慣屏蔽一部分自啟動應用。
當然通讀全文,不難發覺隨著日積月累,手機卡頓現階段在所難免。而用戶自身,甚至是手機廠商能做的,是把這個卡頓的時間點不斷推遲。我們只能寄希望於那些技術開發者,早日研究出不會卡頓的手機。
㈧ 怎麼單獨編譯安卓系統源碼指定模塊
一. 首先在Android源代碼目錄下的build目錄下,有個腳本文件envsetup.sh,執行這個腳本文件後,就可以獲得一些有用的工具:
USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh
注意,這是一個source命令,執行之後,就會有一些額外的命令可以使用:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
這些命令的具體用法,可以在命令的後面加-help來查看,這里我們只關注mmm命令,也就是可以用它來編譯指定目錄的所有模塊,通常這個目錄只包含一個模塊。
二. 使用mmm命令來編譯指定的模塊,例如Email應用程序:
USER-NAME@MACHINE-NAME:~/Android$ mmm packages/apps/Email/
編譯完成之後,就可以在out/target/proct/generic/system/app目錄下看到Email.apk文件了。Android系統自帶的App都放在這具目錄下。另外,Android系統的一些可執行文件,例如C編譯的可執行文件,放在out/target/proct/generic/system/bin目錄下,動態鏈接庫文件放在out/target/proct/generic/system/lib目錄下,out/target/proct/generic/system/lib/hw目錄存放的是硬體抽象層(HAL)介面文件,後面的文章裡面,我們會陸續提及到,敬請關注。
三. 編譯好模塊後,還要重新打包一下system.img文件,這樣我們把system.img運行在模擬器上時,就可以看到我們的程序了。
USER-NAME@MACHINE-NAME:~/Android$ make snod
四. 參照Ubuntu上下載、編譯和安裝Android最新源代碼一文介紹的方法運行模擬器:
USER-NAME@MACHINE-NAME:~/Android$ emulator
這樣一切就搞定了。