當前位置:首頁 » 編程軟體 » 安卓運行時編譯

安卓運行時編譯

發布時間: 2022-12-18 11:15:32

㈠ 如何編譯運行android代碼

可以先安裝eclipse,接著安裝SDK和ADT,再新建一個模擬器,開啟模擬器,導入你要運行的程序,run就行了。

㈡ android編譯問題

bin腳本路面的下面是什麼?你連目錄都錯了,這寫代碼自然無法找到路徑執行- -
你pwd看清楚的目錄再寫入,試下。代碼沒錯就是目錄問題了

㈢ 如何在安卓手機上運行交叉編譯的C程序

你可以下載一個叫c4droid的軟體在安卓上編譯運行c/C++程序

㈣ android編譯源碼後怎樣運行

編譯:
1. 初始化:
source build/envsetup.sh
2. 選擇target
lunch
然後選擇aosp_arm

3.
make -j4

等待大概2個小時,就可以順利編譯完成。

模擬器運行
直接運行emulator,會出現如下錯誤:

emulator: ERROR: You did not specify a virtual device name, and the system

directory could not be found.

原因是文件路徑沒有設置,解決辦法添加絕對路徑:

out/host/linux-x86/bin/emulator -kernel prebuilts/qemu-kernel/arm/kernel-qemu -sysdir out/target/proct/generic/ -system out/target/proct/generic/system.img -ramdisk out/target/proct/generic/ramdisk.img -data out/target/proct/generic/userdata.img -sdcard sdcard.img -scale 0.7 -memory 512 -partition-size 1024

然後運行模擬器

㈤ Android工程編譯順序是怎麼樣的先編譯哪個模塊,後編譯哪個模塊由誰來決定的

在ActivityManifest.xml聲明的Activity中,含有
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
是最先執行的,其它類就的順序在這個主函數中先調用或跳轉哪個就是哪個了

㈥ 如何解決android studio運行編譯速度慢

開啟gradle單獨的守護進程:
在下面的目錄下面創建gradle.properties文件:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
並在文件中增加:
org.gradle.daemon=true

同時修改項目下的gradle.properties文件也可以優化:
# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true

# Enables new incubating mode that makes Gradle selective when configuring projects.
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true
同時上面的這些參數也可以配置到前面的用戶目錄下的gradle.properties文件里,那樣就不是針對一個項目生效,而是針對所有項目生效。
上面的配置文件主要就是做, 增大gradle運行的java虛擬機的大小,讓gradle在編譯的時候使用獨立進程,讓gradle可以平行的運行。

㈦ 為什麼android源碼還需要編譯

android源碼中有著許多的源代碼,其中有c和c++編寫的也有java編寫,這些代碼需要通過重新編譯後才能在android機器上運行的!當然你修改源碼,改完源碼後還是需要對源碼進行編譯的編譯的!android系統源碼的整體編譯需要很長時間,所以一般否是分開來編譯的!這樣縮短了編譯的等待時間,而且也實現了不同人對不同板塊代碼的修改和編譯的分工了!

㈧ 自己可以編譯安卓源碼嗎

用最新的Ubuntu 16.04,請首先確保自己已經安裝了Git.沒安裝的同學可以通過以下命令進行安裝:

sudo apt-get install git git config –global user.email 「[email protected]」 git config –global user.name 「test」

其中[email protected]為你自己的郵箱.

簡要說明

android源碼編譯的四個流程:1.源碼下載;2.構建編譯環境;3.編譯源碼;4運行.下文也將按照該流程講述.

源碼下載

由於某牆的原因,這里我們採用國內的鏡像源進行下載.
目前,可用的鏡像源一般是科大和清華的,具體使用差不多,這里我選擇清華大學鏡像進行說明.(參考:科大源,清華源)

repo工具下載及安裝

通過執行以下命令實現repo工具的下載和安裝

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

補充說明
這里,我來簡單的介紹下repo工具,我們知道AOSP項目由不同的子項目組成,為了方便進行管理,Google採用Git對AOSP項目進行多倉庫管理.在聊repo工具之前,我先帶你來聊聊多倉庫項目:

我們有個非常龐大的項目Pre,該項目由很多個子項目R1,R2,...Rn等組成,為了方便管理和協同開發,我們為每個子項目創立自己的倉庫,整個項目的結構如下:


這里寫圖片描述

執行完該命令後,再使用make命令繼續編譯.某些情況下,當你執行jack-admin kill-server時可能提示你命令不存在,此時去你去out/host/linux-x86/bin/目錄下會發現不存在jack-admin文件.如果我是你,我就會重新repo sync下,然後從頭來過.

錯誤三:使用emulator時,虛擬機停在黑屏界面,點擊無任何響應.此時,可能是kerner內核問題,解決方法如下:
執行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通過使用kernel-qemu-armv7內核 解決模擬器等待黑屏問題.而-partition-size 1024 則是解決警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一開始編譯的版本是aosp_arm-eng,使用上述命令仍然不能解決等待黑屏問題時,不妨編譯aosp_arm64-eng試試.

    結束吧

    到現在為止,你已經了解了整個android編譯的流程.除此之外,我也簡單的說明android源碼的多倉庫管理機制.下面,不妨自己動手嘗試一下.

    ㈨ Android源碼編譯在真機上運行時為什麼要同時編譯驅動

    模擬器也需要驅動啊,是goldfish,真機沒有驅動(針對硬體的),運行不起來的。源碼是不帶驅動源碼的,驅動源碼要另外下載,源碼里的是已經編譯好的kernel。

    ㈩ 如何編譯能在android上運行的C程序

    本人使用mini6410開發了一個sqlite資料庫的程序,在mini6410的linux系統下已經能夠成功運行了。因為Android使用的也是linux內核,所以我想當然的認為按照同樣的方法將程序移植到mini6410的android系統中也可以成功運行,但是當我運行程序的時候卻提示我不能找到可執行文件(xlisten-arm是交叉編譯出來的可執行文件):

    / # ./xlisten-arm
    /system/bin/sh: ./xlisten-arm: not found

    1.探索:

    在網上搜索起初認為可能是庫文件的不全導致的,於是在查看可執行文件xlisten-arm所需要的動態鏈接庫:

    執行語句:

    # arm-linux-readelf -a ./xlisten-arm | grep "Shared"
    0x00000001 (NEEDED) Shared library: [libsqlite3.so.0]
    0x00000001 (NEEDED) Shared library: [libm.so.6]
    0x00000001 (NEEDED) Shared library: [libcrypt.so.1]
    0x00000001 (NEEDED) Shared library: [libpthread.so.0]
    0x00000001 (NEEDED) Shared library: [libdl.so.2]
    0x00000001 (NEEDED) Shared library: [libc.so.6]

    知道所需的動態鏈接庫後,到android文件系統中去照著寫庫文件,在目錄/system/lib 中,果然缺少相應的庫文件,於是認為找到了我問題的根源所在,在復制相應庫文件的時候為了保留原來的屬性,還特意用了

    #cp -a filename dir

    誰知將這些庫都添加進去以後,仍然無濟於事!

    看來不僅僅事庫文件缺失的問題了,而且一般來說,如果真的是因為缺少庫文件而導致的問題,終端會提示我們鏈接某庫文件時沒有找到該庫文件。

    2.正確的解決方法:

    將程序編譯的時候選擇靜態編譯,即使用選項 -static

    我是對Makefile文件中的CFLAG變數進行修改

    CFLAGS = -Wall

    改為;

    CFLAGS = -Wall -static

    然而此時又出現問題了:

    undefined reference to `pthread_mutex_*'

    undefined reference to `dl*'

    提示沒有定義這些函數,於是在包含的庫文件中添加了這兩個庫文件

    在Makefile中,修改LIBS變數;

    LIBS = -lsqlite3 -lm -lcrypt

    改為:

    LIBS = -lsqlite3 -lm -lcrypt -lpthread -ldl

    然後進行交叉編譯,成功了!

    編譯出來的可執行文件比較大,因為事靜態編譯的,我的有2M多,

    拷貝到開發板的andriod系統中,

    修改許可權:

    #chmod 777 xlisten-arm

    執行:

    / # ./xlisten-arm

    OK!能夠正確的執行了!

    熱點內容
    phpapachetomcat 發布:2025-07-14 01:08:41 瀏覽:122
    伺服器運維看什麼書 發布:2025-07-14 01:07:32 瀏覽:988
    密碼器動態密碼怎麼弄 發布:2025-07-14 00:44:27 瀏覽:386
    小米怎麼把視頻加密 發布:2025-07-14 00:42:59 瀏覽:406
    在線申訴找回密碼根本什麼都沒有 發布:2025-07-14 00:41:22 瀏覽:306
    拉新用什麼安卓手機可以 發布:2025-07-14 00:41:19 瀏覽:418
    androidhome鍵退出 發布:2025-07-14 00:30:03 瀏覽:506
    我都世界模組反編譯教程 發布:2025-07-14 00:29:45 瀏覽:646
    法因數控鑽床編程手冊 發布:2025-07-14 00:18:26 瀏覽:490
    gcc編譯怎麼知道錯誤的行數 發布:2025-07-14 00:06:21 瀏覽:383