導航:首頁 > 編程語言 > androidc代碼

androidc代碼

發布時間:2023-07-07 01:15:53

Ⅰ 怎樣查看 Android APP源代碼

將apk文件拷貝至sdcard上。
命令順序如下:

進入Android sdk文件夾/tools目錄下
輸入adb shell
輸入su
輸入cd data
輸入cd app
這時就可以看到你安裝的所有的apk文件。輸入cp 空格 對應的apk 空格 /sdcard/
這樣就將apk文件拷貝出來了。
將apk文件後綴直接變成rar格式,可以看到熟悉的目錄結構了,

其中xml文件打開後都是二進制的,無法查看。
這時就用到了一個android4me的AXMLPrinter2工具。(請自行網路搜索)
輸入以下命令,將xml文件解析出來
java -jar AXMLPrinter2.jar showtimes_list.xml
此命令是在命令行中查看此showtimes_list.xml
將showtimes_list.xml生成xml文件,則輸入以下命令:
java -jar AXMLPrinter2.jar showtimes_list.xml > h.xml
目前進行到這一步,只能看到xml文件的內容,其工程中的java源文件還是看不到,看目錄結構下有一個classes.dex文件,我們需要將dex文件變為jar文件。
這里用到了另一個工具dex2jar。(自行搜索下載)
在Windows下解壓之後的目錄如下圖所示:

在命令行中,進入到此目錄下:
在Windows下,輸入以下命令:
dex2jar.bat c:classes.dex
運行完之後,在C盤會多一個classes.dex.dex2jar.jar文件,此文件就是我們需要的jar文件。
利用jd-gui,將jar文件反向工程為java代碼。(請自行搜索下載)
它分為Windows、linux、和max三個版本,這里我下載的是Windows版本的。
解壓之後,雙擊運行exe文件,選擇classes.dex.dex2jar.jar文件,相應的jar文件中的Java文件就被反向工程顯示出來了!

Ⅱ Android現在支持純C/C++語言開發應用嗎還需要ART/Java虛擬機嗎

目前截止到2.3系統來看,最終安裝的文件仍然是apk格式,界面和系統大多數功能均使用Java開發,但是稍微高端的應用考慮到性能和安全性使用C/C++是必要的,C/C++最終編譯的so文件就相當於Windows下的dll動態庫,需要一個宿主去載入調用,我們通過Java的JNI去調用這些本地方法,目前從NDK的版本來看Google不斷增強和開放C++在Android開發的用處,以保證和iPhone這種使用本地語言開發出來的軟體體驗度不能差距太大。


安卓底層是用C/C++開發的,如果需要編和升寫很牛逼的android應用的話,毫無疑問的說,一定會用到C或者C++,但是Android的應用框架是用Java寫的,而開發者一般而言只會用到應用框架這一層面,所以可以這么說,Android開發基本上就是使用Java語言進行開發。如果你有對Java比較了解的話,那麼你一定就會知道JNI,是java調用C/C++代碼的一種機制,這樣就可以使得可以在Android終端設備上跑C++代碼了~我和你說,我就是大三才開始學Java和android開發的,喚渣老大二升大三的那個假期自學Java,開學後開始學Android開發的,想要學習,永遠都不晚!哇撒撒~碼了不少梁州字,望採納


Ⅲ 如何在安卓上用C語言

安卓也可以用C語言編寫,這種方式程序效率高,但需要一些底層知識。。。(版即所謂權NDK),Android在支持NDK後是可以實現用C和C++來編寫的。因為用C++比較多,之前用cocos2d-x寫過Demo游戲應付課程作業。就使用了NDK編譯出.so文件然後放入Android工程用在Java層調用。Android SDK的Java層是可以通過JNI和C/C++進行數據交互的。
詳見:
Android NDK | Android Developers
The NDK is a toolset that allows you to implement parts of your app using native-code languages such as C and C++. For certain types of apps, this can be helpful so you can reuse existing code libraries written in these languages, but most apps do not need the Android NDK.

Ⅳ 在android中如何編譯連接 c 的可執行文件

1. 在./development目錄下創建一目錄 如:myhello
2. 進入hello目錄,在其下編寫自己的.c文件,如: myhello.c
#include <stdio.h>
int main()
{
printf("hello world\n");
exit(0);
//return 0;
}
3. 在hello目錄中,編寫Android.mk, 內容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := myhelloworld
LOCAL_SRC_FILES := myhello.c
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)
4. 回到Android源代碼頂層目錄,進行編譯,make myhelloworld
5. 生成的可執行文件位於:out/target/proct/lotus/system/bin/ 目錄下
6. adb push 到手機 /data 目錄下,然後進入adb shell,到data目錄下,執行./myhelloworld 皆可

手動編譯連接【arm-eabi-gcc 的目錄隨andorid的版本而有變化,還有就是需要鏈接的文件如果比較多時,需要很多-l 就很麻煩了】
7、編譯成目標文件:
#$(yourAndroid)/prebuilt/linux-x86/toolchain/[arm-eabi-4.2.1]/bin/arm-eabi-gcc -I bionic/libc/arch-arm/include/ -I bionic/libc/include -I bionic/libc/kernel/common -I bionic/libc/kernel/arch-arm -g -c helloworld.c -o hello.o
8、生成可執行代碼:
#$(yourAndroid)/prebuilt/linux-x86/toolchain/[arm-eabi-4.2.1]/bin/arm-eabi-gcc -nostdlib -Bdynamic -Wl,-T,build/core/armelf.x -Wl,-dynamic-linker,/system/bin/linker -Wl,--gc-sections -Wl,-z,noreloc -o helloworld -Lout/target/proct/[generic]/obj/lib -Wl,-rpath-link=out/target/proct/[generic]/obj/lib -lc hello.o -entry=main

其中[ ]中部分根據實際情況修改

**************************************************
實驗:
1. 建目錄(my Android)/development/test, 在該目錄下新建 Android.mk和fb_test.c文件

2. Android.mk文件

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := myfbtest
LOCAL_SRC_FILES := fb_test.c
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)

3. 以下為fb_test.c
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <linux/kd.h>

#include <stdio.h>

#define FBBIT_PER_PIXEL 32
#define FBBIT_PIXEL_IMAGE 16
#define PIXELS_WIDTH_BYTE 4
#define BYTE_PER_PIXEL 3
#define FB_GRAPHICS_PATH "/dev/graphics/fb0"
#define DEV_TTY0_PATH "/dev/tty0"

#define DISPLAY_ERROR -1
#define DISPLAY_SUCCESS 0

#define GET_BATTERYCAPACITY_ERR -1

#define MAX_STR 255

static struct {
int fd;
void *pixels;
struct fb_fix_screeninfo fixed;
struct fb_var_screeninfo var;
int align_xres;
} fb;

int getBatteryCapacity(void)
{
FILE *in;
char tmpStr[MAX_STR + 1];
char capfile[] = "/sys/class/power_supply/battery/capacity";

if (capfile == NULL)
return GET_BATTERYCAPACITY_ERR;

in = fopen(capfile, "rt");
if (in == NULL)
return GET_BATTERYCAPACITY_ERR;

if (fgets(tmpStr, MAX_STR, in) == NULL) {
printf("Failed to read battery capacity!\n");
fclose(in);
return GET_BATTERYCAPACITY_ERR;

}

printf("Battery capacity(ascii): %s\n", tmpStr);
fclose(in);

return 0;//atoi(tmpStr);
}

static int vt_set_graphicsmode(int graphics)
{
int fd, r;
fd = open(DEV_TTY0_PATH, O_RDWR | O_SYNC);
if (fd < 0)
return DISPLAY_ERROR;
r = ioctl(fd, KDSETMODE, graphics);
close(fd);
return r;
}

int display_init(void)
{
fb.fd = open(FB_GRAPHICS_PATH, O_RDWR);
if (fb.fd < 0)
return DISPLAY_ERROR;

if (ioctl(fb.fd, FBIOGET_FSCREENINFO, &fb.fixed) < 0)
return DISPLAY_ERROR;
if (ioctl(fb.fd, FBIOGET_VSCREENINFO, &fb.var) < 0)
return DISPLAY_ERROR;
fb.align_xres = fb.fixed.line_length /
(fb.var.bits_per_pixel >> BYTE_PER_PIXEL);

fb.pixels = mmap(0, fb.fixed.line_length * fb.var.yres_virtual,
PROT_READ | PROT_WRITE, MAP_SHARED, fb.fd, 0);
if (fb.pixels == MAP_FAILED)
return DISPLAY_ERROR;

vt_set_graphicsmode(KD_GRAPHICS);

memset(fb.pixels, 0, fb.fixed.line_length * fb.var.yres_virtual);
//display_update(fb.pixels, fb.align_xres, fb.var.yres);
fb.var.activate = FB_ACTIVATE_FORCE;
ioctl(fb.fd, FBIOPUT_VSCREENINFO, &fb.var);

printf("display_init ok\n");

return DISPLAY_SUCCESS;
}

void display_on(void)
{
ioctl(fb.fd, FBIOBLANK, FB_BLANK_UNBLANK);
}

void display_off(void)
{
ioctl(fb.fd, FBIOBLANK, FB_BLANK_POWERDOWN);
}

int main()
{
display_init();
display_off();//關顯示屏

getBatteryCapacity();
sleep(5);

display_on();//開顯示屏

return 0;
}

Ⅳ 如何在Android系統上運行C語言的程序

在Android系統上運行C語言的程序的方法:

1. 查看可執行文件xlisten-arm所需要的動態鏈接庫:

執行語句:

Ⅵ 用c語言編的應用程序能在安卓手機上運行嗎

用c語言編的應用程序能在安卓手機上運行嗎

C語言編寫的程序不能直接在android上運行,androidjni通過類似dll的so方式應用C/C++代碼,就是androidnative的開發(NDK)

VB生成的應用程序能在手機上運行嗎

不能的。
windows的自動運行跟Mac的自動運行肯定不是一個道理,那張光碟只不過兼顧了兩個系統的自動運行方式專門做了設置。而且,這個跟問題沒有什麼關系。
Windows下VB編譯好的程序絕對不可能直接運行在mac os下。

windows 應用程序能在 windows 10 mobile上運行嗎

普通桌面應用就是指我們傳統的WINDOWS應用程序 應用商店下載的為Metro應用程序,一般可以全屏操作的。 一般辦公電腦習慣是用傳統的普通桌面應用 平板、手機等是使用應用商店下載的應用程序 可以這樣理解的

請問,用C#編的.exe的應用程序能夠在所有Windows系統上運行嗎?

目標機器上必須安裝相應版本的. framework runtime,其實和JAVA虛擬機一樣,C#編譯的exe最終都被編譯成中間語言,需要在滲姿相應的運行時框架下才能運行

c語言怎麼關閉正在運行的應用程序

可以通過system 函數,調用核基dos命令taskkill實現關閉正在運行的應用程序。

system("taskkill /im notepad.exe");
會關閉記事本應用。
system("taskkill F /pid 1234 T");
會強制結束pid為1234的進程及其子進程。
關於taskkill的詳細描述如下:
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]
參數列表:
/S system 指定要連接到的遠程系統。
/U [domain]user 指定應該在哪個用戶上下文
執行這個命令。
/P [password] 為提供的用戶上下文指定密碼。如果忽略,提示輸入。
/F 指定要強行終止的進程。
/FI filter 指定篩選進或篩選出查詢的的任務。
/PID process id 指定要終止的進程的PID。
/IM image name 指定要終止的進程的圖像名。通配符 '*'可用來指定所有圖像名。
/T Tree kill: 終止指定的進程和任何由此啟動的子進程。
/? 顯示幫助/用法。
篩選器:
篩選器名 有效運算符 有效值
----------- --------------- --------------
STATUS eq, ne 運行 | 沒有響應
IMAGENAME eq, ne 圖像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 會話編號
CPUTIME eq, ne, gt, lt, ge, le CPU 時間,格式為
hh:mm:ss。
hh - 時,
mm - 鍾,ss - 秒改喊謹
MEMUSAGE eq, ne, gt, lt, ge, le 內存使用,單位為 KB
USERNAME eq, ne 用戶名,格式為
[domain]user
MODULES eq, ne DLL 名
SERVICES eq, ne 服務名
WINDOWTITLE eq, ne 窗口標題
注意: 只有帶有篩選器的情況下,才能跟 /IM 切換使用通配符 '*'。
注意: 遠程進程總是要強行終止,
不管是否指定了 /F 選項。

用java編寫的程序能在安卓機上運行么

當然可以,不過如果涉及到線程的時候,得按照安卓對應的版本來進行選擇性的移植程序
假如你使用了開發框架的話,那麼在安卓上面可能會遇到一些小問題!調試一下應該就可以通過的

我想學編寫安卓手機的應用程序,請問我需要學哪些語言?c?java?

安卓是以JAVA語言為基礎的啊。當然是看java了!好多安卓程序員原來都是學JAVA的,然後安卓被谷歌開發以後才轉過來的!

如何讓MFC編寫的應用程序能在別的電腦上運行

把應用程序做成Release版的應用程序,具體步驟如下:
菜單Build->SetActiveConfigure,在彈出對話框中選擇Win32Release,點OK,然後
菜單project->setting ,在彈出對話框的General屬性頁的Microsoft Foundation classes
下拉列表中選擇User MFC in static Library,然後rebuildall,把生成的Release目錄下
的可執行文件拷貝到另一台機器上即可

靜態編譯 release編譯 用depend.exe看看依賴那些dll文件一並過去

在安卓系統上運行應用程序此需打開另一個應用程序這時正在運行的應用程序為什麼會意外崩潰?

系統的兼容性 與游戲不太符合 又或許是運行內存太小了 運行內存是512 還是1G或2G 記住是RAM不是ROM哦

閱讀全文

與androidc代碼相關的資料

熱點內容
逍遙安卓微信驗證 瀏覽:579
5g網路什麼時候普及河北邢台 瀏覽:709
編程和運營哪個更適合創業 瀏覽:893
尤里x怎麼升級 瀏覽:399
做業務績效考核需要哪些數據 瀏覽:433
dnf85版本劍魔刷圖加點 瀏覽:407
手機硬碟測試架可以讀取哪些數據 瀏覽:704
ug前後處理結算結果找不到文件 瀏覽:769
網頁框架拆分代碼 瀏覽:382
未來十年網路安全有什麼影響 瀏覽:362
win10更新後進不了劍靈 瀏覽:243
iphone471激活出錯 瀏覽:648
怎麼把文件拷到u盤 瀏覽:620
中伊簽署文件視頻 瀏覽:661
電信光寬頻網路不穩定 瀏覽:504
網路崗軟路由 瀏覽:995
黑莓z10在哪裡下載app 瀏覽:310
net批量下載文件 瀏覽:696
怎麼把蘋果一體機文件拷貝 瀏覽:117
sql文件怎麼寫 瀏覽:9

友情鏈接