當前位置:首頁 » 安卓系統 » linuxandroid程序

linuxandroid程序

發布時間: 2022-08-18 04:46:47

linux和安卓具體是存在什麼關系

Android一種基於Linux的自由及開放源代碼的操作系統。Linux操作系統的內核,安卓則是基於Linux內核開發的操作系統,安卓在Linux的基礎上提供了驅動以及用戶編程介面。

操作系統管理計算機硬體與軟體資源的計算機程序,同時也是計算機系統的內核與基石。操作系統需要處理如管理與配置內存、決定系統資源供需的優先次序、控制輸入設備與輸出設備、操作網路與管理文件系統等基本事務。操作系統也提供一個讓用戶與系統交互的操作界面。

Android以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 為了達到商業應用,必須移除被GNU GPL授權證所約束的部份,例如Android將驅動程序移到 Userspace,使得Linux driver 與 Linux kernel徹底分開。

Bionic/Libc/Kernel/ 並非標準的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所產生的,這樣做是為了保留常數、數據結構與宏。

(1)linuxandroid程序擴展閱讀

APK安卓應用的後綴,是AndroidPackage的縮寫,即Android安裝包(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位元組碼。

Android在運行一個程序時首先需要UnZip,然後類似Symbian那樣直接執行安裝,和Windows Mobile中的PE文件有區別;

這樣做對於程序的保密性和可靠性不是很高,通過dexmp命令可以反編譯,但這樣做符合發展規律,微軟的 Windows Gadgets或者說WPF也採用了這種構架方式。

在Android平台中dalvik vm的執行文件被打包為apk格式,最終運行時載入器會解壓然後獲取編譯後androidmanifest.xml文件中的permission分支相關的安全訪問,但仍然存在很多安全限制,如果你將apk文件傳到/system/app文件夾下會發現執行是不受限制的。

最終平時安裝的文件可能不是這個文件夾,而在android rom中系統的apk文件默認會放入這個文件夾,它們擁有著root許可權。

㈡ linux下可以安裝安卓應用嗎

您好
一般是不可以的,安卓應用程序只能在安卓系統的設備上安裝使用,在其他系統上是不能安裝的。

㈢ linux下的應用程序移植到android系統,求思路!

如果是JAVA之類的代碼,可能移植難度要低些。移植程序是個苦活,與其沒完沒了的調試,還不如按照原來的設計思路和功能重新寫代碼呢。

㈣ 如何流暢得在所有linux發行版上跑android的apk程序

Android的底層是Linux內核,因此在shell環境下可以運行Linux命令,尤其是經過root處理的android系統,基本上可以通過調用Linux命令完全控制手機,下面的RootCmd.java代碼可以實現運行Linux外部命令。
packagemy.android.code;importandroid.os.Environment;importdalvik.annotation.Signature;importjava.io.BufferedReader;importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.File;importjava.io.FileReader;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.Vector;publicfinalclassRootCmd{//執行linux命令並且輸出結果(StringparamString){VectorlocalVector=newVector();
try{ProcesslocalProcess=Runtime.getRuntime()。
exec(「su」);
//經過Root處理的android系統即有su命令OutputStreamlocalOutputStream=localProcess.getOutputStream();
=newDataOutputStream(localOutputStream);
InputStreamlocalInputStream=localProcess.getInputStream();
=newDataInputStream(localInputStream);
Stringstr1=String.valueOf(paramString);
Stringstr2=str1+「\n」;localDataOutputStream.writeBytes(str2);
localDataOutputStream.flush();
Stringstr3=localDataInputStream.readLine();
localVector.add(str3);
localDataOutputStream.writeBytes(「exit\n」);
localDataOutputStream.flush();
localProcess.waitFor();
returnlocalVector;}catch(ExceptionlocalException){localException.printStackTrace();
}}//執行linux命令但不關注結果輸出(StringparamString){try{ProcesslocalProcess=Runtime.getRuntime()。
exec(「su」);
ObjectlocalObject=localProcess.getOutputStream();
=newDataOutputStream((OutputStream)localObject);
Stringstr=String.valueOf(paramString);
localObject=str+「\n」;localDataOutputStream.writeBytes((String)localObject);
localDataOutputStream.flush();
localDataOutputStream.writeBytes(「exit\n」);
localDataOutputStream.flush();
localProcess.waitFor();
localObject=localProcess.exitValue();
returnlocalObject;}catch(ExceptionlocalException){localException.printStackTrace();
}}//判斷機器Android是否已經root,即是否獲取root許可權(){inti=execRootCmdSilent(「echotest」);
//通過執行測試命令來檢測if(i!=-1)returntrue;retrunfalse;}}

㈤ linux怎麼搭建android開發環境

一、安裝jdk,具體步驟如下:
1,將jdk-7u4-linux-i586.tar拷貝到linux下得/home/yan/download目錄,新建一個目錄/home/yan/android.所以和android相關的都安裝到/home/yan/android這個目錄,所有的源安裝文件都放到download下。切換到root,在download目錄下輸入命令:tar -zxvf jdk-7u4-linux-i586.tar -C ../android, 將其解壓到android目錄。
2,配置環境變數,Linux下需要修改/etc/profile文件,使用 gedit /etc/profile
在這個文件的最後,輸入:
export JAVA_HOME=/home/yan/android/jdk1.7.0_04
export PATH=$PATH:$JAVA_HOME/bin
點擊保存後,輸入:source /etc/profile使生效。輸入:java -version
驗證java環境是否配置好。
二、安裝AndroidSDK
1,將android-sdk_r18-linux復制到download文件夾下,進入download然後: tar -zxvf android-sdk_r18-linux.tgz -C 。。/android/ 進行解壓。
接下來 cd /home/yan/android/android-sdk-linux/tools, 然後運行:。/android,這個是用來啟動android sdk manager的,也就是說這個東西是用來下載真正的android開發包。運行的時候,會出現:
(java:2925): Gtk-WARNING **: 無法在模塊路徑中找到主題引擎:「pixmap」,
(java:2925): Gtk-WARNING **: 無法在模塊路徑中找到主題引擎:「pixmap」,
(java:2925): Gtk-WARNING **: 無法在模塊路徑中找到主題引擎:「pixmap」,
(java:2925): Gtk-WARNING **: 無法在模塊路徑中找到主題引擎:「pixmap」,
這種警告,這是gtk版本太低所導致的。
先關閉android sdk manager,終端輸入:sudo apt-get install gtk2-engines-pixbuf 升級一下gtk。
2,升級完畢後,再次打開android sdk manager,這個是在線安裝,一定確保聯網。裡面的api8 對應android2.2版本,api13對應android3.2版本,api10對應android2.3.3版本。這幾個都是經典的android版本。最上面的事api15對應android4.0.3版本,這個是最新的。默認已經給我們選擇了。這里我們選擇前四個。最上面的四個打勾,然後確定。就會自動下載了。下載完成後,會提示重啟這個android sdk manager
三、安裝eclipse
1,將eclipse-jee-indigo-SR2-linux-gtk.tar復制到download,然後解壓到android下。不再重復。
解壓命令:tar -zxvf eclipse-jee-indigo-SR2-linux-gtk.tar.gz -C 。。/android/
2,進到android/eclipse目錄下,輸入命令。/eclipse查看 裝成功了沒有。
四、安裝ADT 和 (NDK)
1,在google里的android sdk下載地址里,找到ADT-18.0.0,這個是和android sdk4.0.3相對應的版本,是個zip文件。拷貝到download文件夾下。
2,打開eclipse,點help--install new software,點add--archive,這里用的是離線安裝的方法,也可以在線安裝。離線安裝會比較快吧。點select all,然後點next就進行安裝了。點好後,會出現一個Installing software的提示框,顯示進度。安裝完成後,會提示重啟。
註:adt是android develop tool的意思,實現溝通 eclipse和 android sdk的橋梁,所以必須得安裝好。
3,設置android sdk location,即告訴eclipse android的sdk在什麼地方。重啟後,會提示:Welcome to android development,選第二個;use eixsting SDKs,設置路徑。
原來adt18.0.0這個版本過時了,這是2012年4月份時的版本,需要安裝最新的7月發布的那個。
在workwith里輸入:https://dl-ssl.google.com/android/eclipse/,他會自動檢測,列出的有DevelopTools,裡面有ddms、adt等共四個,另外一個是NDK-plugins 反正要用到,索性一塊安了。NDK是本地化的一個工具,說白了是一個交叉編譯器,編譯本地的c/c++代碼成一個動態鏈接庫,供android下得java程序調用。當然程序要滿足JNI介面。
提示不能安裝ndk,ndk安裝前 需要安裝cdt插件!這個步驟里只能升級下 adt了。從adt18.0.0 升級到20.0.0.
重啟,後打開eclipse,點window-preferrence,點android,制定android sdk文件夾路徑。點new project看能否找到android application。。,如能,則這一步安裝成功。
五、安裝CDT插件
google 一下cdt,進入下載鏈接,下載cdt8.0.0版本,按照上面安裝adt的方法 進行安裝。安裝成功的標志是,可以新建c/c++工程。
六、NDK插件的安裝
google NDK的下載地址,下載後拷到download文件夾下,然後直接解壓縮就可以了。export PATH=$PATH:/home/yan/android/android-ndk-r8,然後 source。
上面就是Linux/Ubuntu 11.10搭建Android4.0.3開發環境的方法介紹了,在安裝AndroidSDK前,需先安裝jdk,然後再進行相關軟體的安裝及配置。

㈥ 如何在Linux平台下編譯android工程

我是在windows下做開發的,但是編譯環境還是在linux上。。大體的步驟如下:
1.首先在windows環境下編寫工程(eclipse下編寫android工程)
2.打開linux開發環境(tcl平台:\\10.120.90.207\longc\workspace\code\project\kernel\android\JB)
3.將運行環境的腳本文件運行./evnsetup:配置android運行環境
/JB/build/
找到envsetup.sh
運行.envsetup.sh(source envsetup.h或./envsetup)
所有操作都在終端完成
4.將工程文件拷貝到指定目錄下(TCL平台下的自帶程序在package\TCL_Apps目錄下)
5.刪除一些文件
保留/res,/src,AndroidManifest.xml三個文件
創建Android.mk(makefile文件,linux下用makefile文件來集成一些命令,運行程序的指令和設置都在此處)Android.mk的編寫
6.編譯
進入工程文件目錄
輸入mm命令進行編譯。
7.生成apk文件,編譯完成

㈦ 怎麼在Android程序里載入linux內核模塊

工具/原料

Android程序里載入linux內核模塊
方法/步驟

java層。 java.lang.Runtime's exec() methods:native層就是jni了。
可以用popen() 。
但指令知否支持就得看bionic了。
也可以嘗試system() and pipe。
普通apk不可能有root許可權,除非機器被root了,使用Runtime.exec之類的執行su -c insmod xx.kosu為root的象徵,配合superuser使用 。
在終端下使用su進入root用戶,然後insmod xx.ko這個肯定可以成功的,因為insmod在root用戶下執行的。但是Java的Runtime.exec()也好,Native層execl()也好,只能用su -c命令臨時在root用戶下執行一條指令。adb shell進入終端,普通用戶下執行su -c insmod xx.ko,會發現命令執行失敗,失敗原因就是需要注意的地方,su的-c參數只把下一個變數作為可執行的指令,因此其執行的命令是insmod而參數並沒有傳遞過去,xx.ko作為了su的參數,因此如果想執行成功我們需要使用su -c "insmod xx.ko",將傳遞給insmod的參數和命令組合成一個參數。這樣的話在Java層和Native層執行失敗的問題也可以解決了,在Runtime.exec()中將命令格式進行格式化,比如Runtime.exec(「su -c 」 + "\"insmod xx.ko\"" ),或者在Native中執行execl("/sytem/bin/su","/sytem/bin/su","-c","insmod xx.ko", NULL),這樣最終傳遞給shell的命令就是su -c "insmod xx.ko"了。

㈧ Linux內核怎樣啟動Android

那麼Linux內核和Android什麼關系?Linux內核是怎樣引導起Android呢?本文進行簡單的描述。 Android雖然建立在Linux內核之上,但是他對內核進行了一些擴展,增加了一些驅動。比如Binder,loger等等驅動。可以拿Android內核代碼和其Baseline版本進行對比。可以看到Android對Linux內核的所有擴展。 熟悉Linux啟動的朋友知道,首先Linux引導完成之後,會啟動用戶態的init進程(pid為0),這個進程在整個系統運行過程中起著非常重要的作用,如果你對init進程不了解請查相關資料。init完成系統的初始化工作,然後進入shell,接收用戶的輸入。 Android啟動也沒有什麼神秘的,就是用自己的init進程替換了Linux內核的init進程,完成自己初始化工作(設備,文件系統等等初始化)。然後啟動自己的虛擬機,程序等等的東西。Android的init進程的代碼位於system/core/init/init.c下面,可以去查看其源碼,來了解Android啟動詳細流程。Android啟動流程的資料網上已經比較多,這里就不贅述了。 可以看到移植Android過程中,調試init非常重要。因為所有和硬體平台相關的東西都這里初始化,所以init進程有可能需要移植或者配置。其他的進程都是和硬體無關的,理論上不需要修改就應該能夠運行起來。 經過上面的描述可以看出,Android的init進程起著一個承上啟下的作用。

㈨ 在linux下怎麼給android手機預安裝一個軟體

用Linux系統連接手機後,在手機裡面打開"USB調試",打開終端:輸入:
安裝:
adb install xxx.apk
卸載:
adb uinstall com.xxx.xxx
注意卸載的時候要指定包名.

㈩ 有沒有在Linux上運行安卓應用的工具

我用的卓懿應用商城,這個商城裡的安卓應用比較多,兼容性好,程序運行也比較流暢,之前也用過anbox,但應用經常出現閃退、提示錯誤,這些問題挺折磨人的,還有很多應用還不支持,卓懿應用商城用來日常辦公娛樂基本沒遇到過啥問題,一直在用這個。網路謝邀

熱點內容
404頁面源碼 發布:2025-01-16 15:58:48 瀏覽:887
手機建行密碼忘記了怎麼辦 發布:2025-01-16 15:45:38 瀏覽:224
易語言視頻播放源碼 發布:2025-01-16 15:39:35 瀏覽:343
肇觀演算法 發布:2025-01-16 15:38:39 瀏覽:610
管家婆找不到加密狗 發布:2025-01-16 15:10:28 瀏覽:308
linux的etcfstab 發布:2025-01-16 15:00:43 瀏覽:364
電腦無法登錄內網伺服器 發布:2025-01-16 15:00:28 瀏覽:575
編譯nasm 發布:2025-01-16 14:54:43 瀏覽:202
編程實戰寶典 發布:2025-01-16 14:53:12 瀏覽:248
ibm伺服器怎麼關閉開機初始化 發布:2025-01-16 14:50:41 瀏覽:66