真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

安卓記賬java源代碼,記賬本安卓代碼

怎樣查看 Android APP源代碼?

將apk文件拷貝至sdcard上。

公司主營業(yè)務:成都網(wǎng)站制作、成都網(wǎng)站建設、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出承留免費做網(wǎng)站回饋大家。

命令順序如下:

進入Android sdk文件夾/tools目錄下

輸入adb shell

輸入su

輸入cd data

輸入cd app

這時就可以看到你安裝的所有的apk文件。輸入cp 空格 對應的apk 空格 /sdcard/

這樣就將apk文件拷貝出來了。

將apk文件后綴直接變成rar格式,可以看到熟悉的目錄結(jié)構(gòu)了,

其中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文件的內(nèi)容,其工程中的java源文件還是看不到,看目錄結(jié)構(gòu)下有一個classes.dex文件,我們需要將dex文件變?yōu)閖ar文件。

這里用到了另一個工具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是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯(lián)盟領導及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運商組建開放手機聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權方式,發(fā)布了Android的源代碼。第一部Android智能手機發(fā)布于2008年10月。Android逐漸擴展到平板電腦及其他領域上,如電視、數(shù)碼相機、游戲機等。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。 2013年的第四季度,Android平臺手機的全球市場份額已經(jīng)達到78.1%。?[1]??2013年09月24日谷歌開發(fā)的操作系統(tǒng)Android在迎來了5歲生日,全世界采用這款系統(tǒng)的設備數(shù)量已經(jīng)達到10億臺。

Android一詞最早出現(xiàn)于法國作家利爾亞當(Auguste Villiers de l'Isle-Adam)在1886年發(fā)表的科幻小說《未來夏娃》(L'ève future)中。他將外表像人的機器起名為Android。

Android的Logo是由Ascender公司設計的,誕生于2010年,其設計靈感源于男女廁所門上的圖形符號, [1]? 于是布洛克繪制了一個簡單的機器人,它的軀干就像錫罐的形狀,頭上還有兩根天線,Android小機器人便誕生了。其中的文字使用了Ascender公司專門制作的稱之為“Droid ” 的字體。Android是一個全身綠色的機器人,綠色也是Android的標志。顏色采用了PMS 376C和RGB中十六進制的#A4C639來繪制,這是Android操作系統(tǒng)的品牌象徵。有時候,它們還會使用純文字的Logo。

誰能告訴我,java和安卓的apk的關系?源代碼又是什么,安卓的應用安裝包都是制作步驟是哪樣的?

APK是安卓應用的后綴,是AndroidPackage的縮寫,即Android安裝包(apk)。APK是類似Symbian Sis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執(zhí)行即可安裝。apk文件和sis一樣,把android sdk編譯的工程打包成一個安裝程序文件,格式為apk。 APK文件其實是zip格式,但后綴名被修改為apk,通過UnZip解壓后,可以看到Dex文件,Dex是Dalvik VM executes的全稱,即Android Dalvik執(zhí)行程序,并非Java ME的字節(jié)碼而是Dalvik字節(jié)碼。

請問安卓操作系統(tǒng)核心是用什么語言編寫的?它的應用程序都是Java編寫的嗎?從哪里可以下載到系統(tǒng)源碼?

核心是Linux內(nèi)核所以是c語言寫的,在上面還有c++,應用層是用Java寫,源碼在Android官網(wǎng)上應該有的下載,在電腦上下載android sdk,然后可以用eclipse開發(fā),現(xiàn)在在eclipse中有個插件叫ADT,是專門用來幫助開發(fā)android程序的

android 軟件反編譯 可以獲得源代碼嗎

android培訓中有很重要的一個知識點就是反編譯獲得java源代碼,但是這個知識點又恰恰是很多同學的軟肋,很難掌握,今天就來幫你解決你的難題。

環(huán)境:win7

步驟:

1,下載工具包

dex2jar-0.0.9.13--反編譯工具--name=dex2jar-0.0.9.13.zipcan=2q=

jd-gui-0.3.5.windows.zip--反編譯后的文件查看器

分別解壓。

2,將源apk的后綴名修改.jar并解壓,得到其中的classes.dex文件,將classes.dex復制到dex2jar.bat所在目錄dex2jar-0.0.9.13文件夾

在命令行下定位到dex2jar.bat所在目錄 (開始運行cmdcd c:\dex2jar-0.0.9.13)

運行 :dex2jar.bat classes.dex

將生成 classes_dex2jar.jar

接下來就可以通過jdgui下的jd-gui.exe程序打開生成的jar包看到java代碼了。

多看多做多練習是學習語言必須經(jīng)歷的過程,學習不是一朝一夕的事情,只有恒之以衡的堅持才能帶來成功。希望以上的Android教程能給大家?guī)韼椭?/p>

Java記事本源代碼

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.datatransfer.Clipboard;

import java.awt.datatransfer.DataFlavor;

import java.awt.datatransfer.Transferable;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;

import java.awt.event.InputEvent;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPopupMenu;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.KeyStroke;

import javax.swing.filechooser.FileFilter;

public class Demo extends JFrame {

private static final long serialVersionUID = 1L; //Eclipse自動生成序列號

String name = "無標題";

JPanel menuPanel = new JPanel();

JTextArea text = new TextAreaMenu(); //文本編輯區(qū)

JScrollPane jsp = new JScrollPane(text); //可滾動編輯區(qū)

JMenuBar mnbMain = new JMenuBar();

JMenu mnServer = new JMenu("文件(F)");

JMenu mnEdit = new JMenu("編輯(E)");

JMenuItem[] mniServers = new JMenuItem[]{

new JMenuItem("新建(N)"),

new JMenuItem("保存(S)"),

new JMenuItem("打開(O)"),

new JMenuItem("退出(X)"),

};

{

menuPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));

mnbMain.add(mnServer);

menuPanel.add(mnbMain);

mnbMain.setBounds(5, 0, 50, 30);

for (int i = 0; i mniServers.length; i++) {

mnServer.add(mniServers[i]);

}

mniServers[0].addActionListener(new ActionListener() { //定義"新建"組件操作

@Override

public void actionPerformed(ActionEvent arg0) {

new Demo(getLocation().x+15,getLocation().y+5);

}

});

mniServers[1].addActionListener(new ActionListener() { //定義"保存"組件操作

@Override

public void actionPerformed(ActionEvent arg0) {

chooseToSave();

}

});

mniServers[2].addActionListener(new ActionListener() { //定義"打開"組件操作

@Override

public void actionPerformed(ActionEvent arg0) {

chooseToOpen();

}

});

mniServers[3].addActionListener(new ActionListener() { //定義"退出"組件操作

@Override

public void actionPerformed(ActionEvent arg0) {

System.exit(0);

}

});

text.addFocusListener(new FocusListener() {

@Override

public void focusLost(FocusEvent e) {

// TODO Auto-generated method stub

}

@Override

public void focusGained(FocusEvent e) {

}

});

}

public Demo(int x,int y) {

this.setTitle( name +" - 記事本");

this.setBounds(x, y, 600, 400);

this.setLayout(new BorderLayout());

this.add(menuPanel, BorderLayout.NORTH);

this.add(jsp);

jsp.setBounds(5, 30, getWidth()-10, getHeight()-50);

this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

this.setVisible(true);

}

public Demo() {

this(200,200);

}

protected void chooseToSave() {

File file = chooseFile();

if(null==file)return;

if(file.exists()){

int cho = JOptionPane.showConfirmDialog(this, "文件已存在,是否覆蓋?");

System.out.println(cho);

if(cho==JOptionPane.OK_OPTION)save(file);

else return;

}

else save(file);

}

private void save(File file) {

name = file.getName();

write(text.getText(),file.getPath());

this.setTitle( name +" - 記事本");

}

protected void chooseToOpen() {

File file = chooseFile();

if(null==file||!file.exists())return;

name = file.getName();

Demo.this.setTitle( name +" - 記事本");

read(text,file);

}

/*********************************************MAIN**************************************************/

public static void main(String[] args) {

new Demo();

}

private File chooseFile(){

JFileChooser chooser = new JFileChooser(); //構(gòu)建文件選擇器

chooser.setFileFilter(new FileFilter() {

@Override

public String getDescription() {

return "文本文件";

}

@Override

public boolean accept(File f) {

String name = f.getName().toLowerCase();

return f.isDirectory() || name.endsWith(".txt")

||name.endsWith(".c") || name.endsWith(".java")

||name.endsWith(".cpp"); //可識別文件

}

});

int result = chooser.showDialog(null, "確定");

if (result==JFileChooser.APPROVE_OPTION) {

File file = chooser.getSelectedFile();

System.out.println(file.getAbsolutePath());

} else {

System.out.println("未選擇文件");

}

return chooser.getSelectedFile();

}

public static void read(JTextArea text,File file){ //定義讀取文件操作

FileReader fr;

try {

fr = new FileReader(file);

BufferedReader br = new BufferedReader(fr);

String string = null;

while((string = br.readLine()) != null){

text.append(string+"\n");

}

br.close();

fr.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

public static void write(String txt,String fileName){

FileWriter fw;

try {

fw = new FileWriter(fileName);

BufferedWriter bw = new BufferedWriter(fw);

bw.write(txt);

bw.flush();

bw.close();

fw.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

class TextAreaMenu extends JTextArea implements MouseListener {

private static final long serialVersionUID = -2308615404205560110L;

private JPopupMenu pop = null; // 彈出菜單

private JMenuItem selectAll = null,copy = null, paste = null, cut = null, cancel=null; // 功能菜單

public TextAreaMenu() {

super();

init();

}

private void init() {

this.addMouseListener(this);

this.setSelectedTextColor(Color.red);

pop = new JPopupMenu();

pop.add(selectAll = new JMenuItem("全選"));

pop.add(copy = new JMenuItem("復制"));

pop.add(paste = new JMenuItem("粘貼"));

pop.add(cut = new JMenuItem("剪切"));

pop.add(cancel = new JMenuItem("撤銷"));

selectAll.setAccelerator(KeyStroke.getKeyStroke('A', InputEvent.CTRL_MASK));

copy.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_MASK));

paste.setAccelerator(KeyStroke.getKeyStroke('V', InputEvent.CTRL_MASK));

cut.setAccelerator(KeyStroke.getKeyStroke('X', InputEvent.CTRL_MASK));

cancel.setAccelerator(KeyStroke.getKeyStroke('Z', InputEvent.CTRL_MASK));

copy.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

action(e);

}

});

paste.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

action(e);

}

});

cut.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

action(e);

}

});

this.add(pop);

}

/**

* 菜單動作

* @param e

*/

public void action(ActionEvent e) {

String str = e.getActionCommand();

if (str.equals(selectAll.getText())) { // 全選

this.selectAll();

}

else if (str.equals(copy.getText())) { // 復制

this.copy();

} else if (str.equals(paste.getText())) { // 粘貼

this.paste();

} else if (str.equals(cut.getText())) { // 剪切

this.cut();

}

else if (str.equals(cancel.getText())) { //撤銷

this.cut();

}

}

public JPopupMenu getPop() {

return pop;

}

public void setPop(JPopupMenu pop) {

this.pop = pop;

}

/**

* 剪切板中是否有文本數(shù)據(jù)可供粘貼

*

* @return true為有文本數(shù)據(jù)

*/

public boolean isClipboardString() {

boolean b = false;

Clipboard clipboard = this.getToolkit().getSystemClipboard();

Transferable content = clipboard.getContents(this);

try {

if (content.getTransferData(DataFlavor.stringFlavor) instanceof String) {

b = true;

}

} catch (Exception e) {

}

return b;

}

/**

* 文本組件中是否具備復制的條件

*

* @return true為具備

*/

public boolean isCanCopy() {

boolean b = false;

int start = this.getSelectionStart();

int end = this.getSelectionEnd();

if (start != end)

b = true;

return b;

}

public void mouseClicked(MouseEvent e) {

}

public void mouseEntered(MouseEvent e) {

}

public void mouseExited(MouseEvent e) {

}

public void mousePressed(MouseEvent e) {

if (e.getButton() == MouseEvent.BUTTON3) {

copy.setEnabled(isCanCopy());

paste.setEnabled(isClipboardString());

cut.setEnabled(isCanCopy());

pop.show(this, e.getX(), e.getY());

}

}

public void mouseReleased(MouseEvent e) {

}

}

如何反編譯Apk得到Java源代碼

首先要下載兩個工具:dex2jar和JD-GUI

前者dex2jar是將apk中的classes.dex轉(zhuǎn)化成Jar文件,而JD-GUI是一個反編譯工具,可以直接查看Jar包的源代碼。

首先將apk文件,將后綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;

解壓下載的dex2jar,將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄(在DOS命令下CD 目錄)

運行

dex2jar.bat classes.dex

生成

classes.dex.dex2jar.jar

運行JD-GUI(jd-gui.exe),打開上面生成的jar包,即可看到源代碼了


網(wǎng)頁名稱:安卓記賬java源代碼,記賬本安卓代碼
文章源于:http://weahome.cn/article/hocssp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部