android文件下載代碼
❶ 怎樣查看 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文件就被反向工程顯示出來了!
❷ 怎麼運用Git來獲取android源代碼
下載Git工具:(默認安裝即可,我自己是安裝在D:\AndroidSrc\Git目錄下):
安裝完成之後,雙擊桌面的Git bash圖標:
雙擊出現如下命令窗口,並輸入cd /c/
android/source(因為我是選擇把android源代碼下載到這裡面具體情況你可以根據自己的需要來決定),出現如下界面:
初始化目錄,使用命令:git init ,然後從遠程伺服器下載git:
git fetch http://android.git.kernel.org/ + project path.git
並且輸入我要下在的base這個部分的代碼:git fitch
http://android.git.kernel.org/platformworks/base.git
出現如下界面:
出現這個肯定下載不了的,為什麼呢?我去android官網去看了一下,原來不是用老版本的那個命令了,而是如下的命令:
因此我要下載的base這個源代碼,找到相應的目錄,看下圖中的最後一個目錄:我用命令:
於是我用:git clone
https://android.googlesource.com/platform/frameworks/base.git
命令來下載base部分的源代碼,具體的界面如下:
然而居然出現HTTP
服務請求失敗,所以自己果把https換成http(我想大多數的朋友在eclipse中在線安裝ADT插件的時候,也會碰到類似的問題,這里就不一一詳述了):
輸入命令:git clone
http://android.googlesource.com/platform/frameworks/base.git
出現如下界面:
結果成功下載了base這個部分的代碼:現在看看我的C盤相應目錄中多出的base這個文件夾:
結果就成功了,你要下載其他部分的源代碼,依葫蘆畫瓢就OK了,希望能幫到學習android的朋友。
❸ android 代碼
public class ApkClientActivity extends Activity {
static final String TAG = "ApkClientActivity";
Context mContext;
DownloadManager manager ;
DownloadCompleteReceiver receiver;
Button downBtn ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mContext = this;
//獲取下載服務
manager =(DownloadManager)getSystemService(DOWNLOAD_SERVICE);
receiver = new DownloadCompleteReceiver();
downBtn = (Button)findViewById(R.id.downBtn);
downBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//創建下載請求
DownloadManager.Request down=new DownloadManager.Request (Uri.parse("http://192.168.0.66:8080/qqinput.apk"));
//設置允許使用的網路類型,這里是移動網路和wifi都可以
down.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE|DownloadManager.Request.NETWORK_WIFI);
//禁止發出通知,既後台下載
down.setShowRunningNotification(false);
//不顯示下載界面
down.setVisibleInDownloadsUi(false);
//設置下載後文件存放的位置
down.(mContext, null, "qqinput.apk");
//將下載請求放入隊列
manager.enqueue(down);
}
});
}
//接受下載完成後的intent
class DownloadCompleteReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)){
long downId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
Log.v(TAG," download complete! id : "+downId);
Toast.makeText(context, intent.getAction()+"id : "+downId, Toast.LENGTH_SHORT).show();
}
}
}
@Override
protected void onResume() {
registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
super.onResume();
}
@Override
protected void onDestroy() {
if(receiver != null)unregisterReceiver(receiver);
super.onDestroy();
}
}
其中在設置 down.setShowRunningNotification(false);時,需要添加相應的許可權:
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
否則,會報錯!
AndroidManifest.xml文件內容如下:
Xml代碼
<strong><uses-sdk android:minSdkVersion="9" /></strong>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".ApkClientActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
❹ 下載了android源代碼,裡面是一個壓縮文件。怎麼發布到安卓市場。要具體的步驟。謝謝!
android源代碼是無法提交到android市場的。
只能提交完整的應用程序。
在hiapk安卓市場注冊一個開發者帳號,官方人員審核通過以後你就可以登錄你的帳號提交應用了。
希望我的回答對你有用,望採納為滿意答案。
(*^__^*)
❺ android通過http post實現文件下載
可參照我的如下代碼
java.io.OutputStreamos=null;
java.io.InputStreamis=null;
try{
java.io.Filefile=newjava.io.File(str_local_file_path);
if(file.exists()&&file.length()>0){
}else{
file.createNewFile();
java.net.URLurl=newjava.net.URL(str_url);
java.net.HttpURLConnectionconn=(java.net.HttpURLConnection)url.openConnection();
os=newjava.io.FileOutputStream(file);
is=conn.getInputStream();
byte[]buffer=newbyte[1024*4];
intn_rx=0;
while((n_rx=is.read(buffer))>0){
os.write(buffer,0,n_rx);
}
}
returntrue;
}catch(MalformedURLExceptione){
}catch(IOExceptione){
}finally{
os.flush();
os.close();
is.close();
}
returnfalse;
❻ android代碼下載
首先,android代碼最最重要的就是SDK自帶的《api_sample》~ 就在android sdk目錄下的samples目錄里,Eclipse可以直接導入這裡面的工程。
api_sample介紹了絕大部分api的使用方法,不知道api怎麼用的時候就可以看看官方怎麼用的。。。
要下載其他源碼有幾個途徑:
1. sourceforge.net 在里邊搜
2. 上各大android開發論壇找 比如http://www.androidin.com/
3. 推薦一個相當棒的網站:http://www.anddev.org/ 里邊有很多tutorials~ :)
❼ 現在到哪獲取android系統源代碼
Android系統源碼都在http://android.git.kernel.org/網址下,其中那個系統app都在platform/packages/apps結構下。
在剛才的Git的shell命名行窗口中輸入下面的命名:
git clone git://android.git.kernel.org/platform/packages/apps/Luancher2.git
你就可以在你的msysGit安裝目錄的git下(~\msysgit\msysgit\git)看到Luancher工程文件夾了。
然後打開~\msysgit\msysgit\git\Luancher2文件夾,就可以看到Android的Luancher系統源碼工程了。
對於其他的app系統源碼的獲取方法和上述的Luancher相同,只是命名行後的參數不同。
git clone git://android.git.kernel.org/需下載源碼的app所在的位置。
❽ 怎樣查看 Android APP 源代碼
用壓縮軟體打開apk文件,解壓出根目錄中的classes.dex文件
使用cmd ,dex2jar.bat classes.dex命令將classes.dex轉換為jar
再用jd-gui打開該jar就可以查看源碼了,如果apk安全性好的話,有些代碼是看不到的
❾ android開發中,使用到了文件下載並寫入到SD卡中,但是每次下載到的文件都不完整。
public File writeToSDFromInput(String path, String fileName,
InputStream inputStream) {
File file = null;
OutputStream outputStream = null;
createSDDir(path);
try {
file = createFileInSDCard(fileName, path);
outputStream = new FileOutputStream(file);
byte buffer[] = new byte[4 * 1024];
int temp;
while ((temp = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, temp);
}
outputStream.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return file;