androidapk資源
1. apk文件在安卓手機怎麼打開方式
apk文件在安卓手機打開方式如下:
1、第一步,先在手機中找到需要打開的apk文件,點擊打開,如下圖所示。
(1)androidapk資源擴展閱讀:
apk文件格式:
在Android平台中,dalvikvm的執行文件被打包為apk格式,最終運行時載入器會解壓,然後獲取編譯後的androidmanifest.xml文件中的permission分支相關的安全訪問。
但仍然存在很多安全限制,如果你將apk文件傳到/system/app文件夾下,會發現執行是不受限制的。
安裝的文件可能不是這個文件夾,而在androidrom中,系統的apk文件默認會放入這個文件夾,它們擁有著root許可權。
apk文件結構:
1、META-INF\(註:Jar文件中常可以看到);
2、res\(註:存放資源文件的目錄);
3、AndroidManifest.xml(註:程序全局配置文件);
4、classes.dex(註:Dalvik位元組碼);
5、resources.arsc(註:編譯後的二進制資源文件)。
2. 如何取得Android應用apk的UI資源和布局
第一步: 通過Hierarchy Viewer 工具學習別人的UI布局,
第二步:獲得apk中的圖片和xml文件,方法一是將擴展名apk改為zip,但是xml有可能打開的時候是亂碼。
3. 安卓手機怎麼打開apk文件
apk是安卓的軟體安裝包,安卓軟體必須先安裝才能用。手機都有自帶的文件管理器,用這個軟體找到apk的所在位置,點擊即可打開安裝。
1.先要在高級設置裡面允許安裝非官方渠道獲取的應用程序。
(3)androidapk資源擴展閱讀:
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文件有區別。
文件結構
1. META-INF (註:Jar文件中常可以看到);
2. res (註:存放資源文件的目錄) ;
3. AndroidManifest.xml (註:程序全局配置文件) ;
4. classes.dex (註:Dalvik位元組碼);
5. resources.arsc (註:編譯後的二進制資源文件)。
APK 是類似Symbian Sis 或Sisx 的文件格式。通過將APK 文件直接傳到Android 模擬器或Android 手機中執行即可安裝。
4. android 怎麼載入未安裝的apk資源
准備
准備被調用Android工程:TestB
ITest
public interface ITest {
String getMoney();
}
TestBActivity
public class TestBActivity extends Activity implements ITest {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public String getMoney() {
return "1";
}
}
代碼說明:很簡單的代碼。將生成後的TestB.apk拷貝到SD卡的根目錄下。
調用 :
調用工程TestA
public class TestAActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String path = Environment.getExternalStorageDirectory() + "/";
String filename = "TestB.apk";
DexClassLoader classLoader = new DexClassLoader(path + filename, path,
null, getClassLoader());
try {
Class mLoadClass = classLoader.loadClass("com.nmbb.TestBActivity");
Constructor constructor = mLoadClass.getConstructor(new Class[] {});
Object TestBActivity = constructor.newInstance(new Object[] {});
Method getMoney = mLoadClass.getMethod("getMoney", null);
getMoney.setAccessible(true);
Object money = getMoney.invoke(TestBActivity, null);
Toast.makeText(this, money.toString(), Toast.LENGTH_LONG).show();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
執行的時候可以發現會自動生成TestB.dex文件。動態載入方面還可以搜索一下"Java動態載入"方面的資料,很有參考價值。
5. 如何反編譯android的apk文件得到資源文件
您好,很高興能幫助您
一.反編譯Apk得到Java源代碼
轉載自:http://hi..com/%CB%BF%D4%B5%CC%EC%CF%C2/blog/item/2284e2debafc541e495403ec.html
工具下載:需用到dex2jar和JD-GUI這2個工具
dex2jar下載地址:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI下載地址:
windows版JD-GUI:http://laichao.googlecode.com/files/jdgui.zip
linux版JD-GUI:http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz
步驟:
1.首先找到Android軟體安裝包中的classes.dex
把.apk文件改名為.zip,然後解壓縮,得到其中的classes.dex文件,它就是java文件編譯再通過dx工具打包成的,所以現在我們就用上述提到的2個工具來逆方向導出java源文件
2.把classes.dex拷貝到dex2jar.bat所在目錄。
在命令行模式下定位到dex2jar.bat所在目錄,運行 dex2jar.bat classes.dex ,生成classes.dex.dex2jar.jar
3.運行JD-GUI工具(它是綠色無須安裝的)
打開上面的jar文件,即可看到源代碼
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
二.反編譯apk生成程序的源代碼和圖片、XML配置、語言資源等文件。
轉載自:http://blog.sina.com.cn/s/blog_5752764e0100kv34.html
工具下載:
在http://code.google.com/p/android-apktool/下 載獲得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip兩個包都要下。
步驟:
1.解壓縮下載的兩個文件包,apktool-install-windows-2.1_r01-1.zip解壓縮後得到的包里有aapt.exe 和apktool.bat.(注意要把apktool-1.0.0.tar.bz2解壓後的一個.jar 文件進來)
2.打開命令窗口 (開始 > 運行,輸入cmd,回車。)進入到apktool.bat的文件夾里。
輸入:
apktool d C:\***.apk C:\***文件夾
(命令行解釋:apktool d 要反編譯的文件 輸出文件夾)
特別注意:你要反編譯的文件一定要放在C盤的根目錄里,
3.打開 C:\***文件夾 就可以得到我們學院的各種資源了。
三.將反編譯完的文件重新打包成apk
很簡單,只要輸入:
apktood b c:***文件夾(你編譯出來文件夾)
你的採納是我前進的動力,
記得好評和採納,答題不易,互相幫助,
6. Android資源標簽屬性及優先順序(一)
在寫前一篇文章 淺述Android Apk打包流程 的時候發現解壓後的apk里res的資源文件,有多於我本地項目中的res資源文件夾。
如果我的項目中依賴了Android的一些庫,比如design庫,design裡面有自己的res,那麼在打包我的項目的時候,這些res會合並一起打包。
我查看了下,我確實依賴了design等庫。
對比一下前三張圖,我本地項目沒有建anim、anim-v21、animator-v21(不再截圖了)等資源文件夾,但是design庫有,最終一並打包到我的項目中。
res目錄下的文件夾是有命名規則的,不能隨便起,為的是要適配不同的設備,而且是要做到最佳的資源匹配。
2.1、資源標簽屬性及優先順序
除了解析度外,同種資源之間可以有下面許多資源屬性標簽,它們在匹配過程中是有優先順序順序的。大家可以快速瀏覽一下即可。以下資源標簽修飾語按照優先順序從高到低的順序排列。
3、Locale(語言和區域)
例如en表示英語,fr表示法語,en-rUS表示英語和美國地區。不區分大小寫,r用於區分區域碼。
4、Layout Direction(布局方向)
ldrtl,布局方向從右到左(阿拉伯語等會這樣布局);ldltr,布局方向從左到右,是默認的隱式值。(這就解答了我前面第二個提的問題了)
5、Smallest Screen Width(最小寬度)
sw<N>dp,屏幕的基本尺寸。
sw320dp:適用於320 320 ldpi、320 480 mdpi、480 480 hdpi
sw600dp:適用於600 1024mdpi (7英寸的平板電腦)
sw720dp:適用於720*1280 mdpi (10英寸平板電腦)
當你的屏幕的絕對寬度大於600dp時,屏幕就會自動調用layout-sw600dp文件夾裡面的布局。這里的絕對寬度是指手機的實際寬度,即與手機是否橫屏沒關系,也就是手機較小的邊的長度。
6、Screen Width(屏幕寬度)
w<N>dp ,設備的可用寬度值隨著當前是橫屏還是豎屏會產生變化,即它表示的是當前真實的寬度值。即當手機豎屏時,為較小邊的長度;當手機橫屏時,為較長邊的長度。
7、Screen Height(屏幕高度)
h<N>dp,與lScreen Width的使用一樣,只是這里指的是相對的高度。指手機相對放置的高度;即當手機豎屏時,為較長邊的長度;當手機橫屏時,為較小邊的長度。
8、Size(屏幕大小)
samll:低密度,最小布局尺寸為320 426dp
normal:中等密度,標准屏幕最小布局尺寸約為320 470dp
large:中等密度,大屏幕最小布局尺寸為480 640dp
xlarge:大於中等密度,最小布局尺寸為720 960dp。基本用於平板電腦。
該配置並不僅適用於指定設備,如果沒有匹配的資源,會選擇與之最近的。 如果所有資源均大於當前屏幕的尺寸限定符,則系統不會使用這些資源,且應用運行時會崩潰。
9、Ratio(屏幕縱橫比)
long:寬屏
notlong:非寬屏
10、Orientation(屏幕方向)
port:豎向的
land:橫向的
square:正方形的(我也不知道這個是什麼樣子的)
11、UI Mode(UI模式)
無、car、desk、 television、appliance、 watch6種模式。(其實我沒看明白是幹嘛的,哈哈)
12、Night Mode(夜間模式)
night:夜間模式
notnight:非夜間模式
可以通過UiModeManager來開啟和關閉這一功能。
13、Density(屏幕像素密度)
ldpi:低密度,約120dpi;mdpi:中等密度,160dpi;hdpi:高密度,240dpi;xhdpi:超高密度,320dpi;xxhdpi:超超高密度,480dpi;xxxhdpi:超超超高密度,640dpi;nodpi:不希望以匹配設備密度的點陣圖資源;tvdpi:主要用於電視,約213dpi。anydpi:適用於所有密度,優先順序高於其他限定符。
14、Touch Screen(觸摸屏)
notouch:設備不帶觸摸屏
stylus:觸摸屏通過手寫筆操作
finger:觸摸屏通過手指操作
15、Keyboard(鍵盤可用性)
keysexposed:設備有可用鍵盤。如果當前的軟鍵盤被啟用,那麼即便設備沒有鍵盤或者鍵盤不可用,這個狀態仍可能有效。
keyshidden:設備有鍵盤,但當前被隱藏,而且沒有軟鍵盤啟用。
keyssoft:設備當前軟鍵盤啟動,即便它處於可見或不可見狀態。
16、Text Input(文本輸入法)
nokeys:設備不帶用用於文本輸入的按鍵
qwerty:設備具有標准硬鍵盤(無論是否對用戶可見)
12key:設備具有 12 鍵硬鍵盤(無論是否對用戶可見)
17、Navigation State(定位鍵可用性)
描述定位鍵是否可用,指的是游標定位,非GPS導航的定位。
navexposed:定位鍵對用戶可用
navhidden:定位鍵對用戶不可用
18、Navigation Method(主要的非觸摸屏定位方式)
nonav:設備除了觸摸屏外沒有其他定位方式
dpad:設備具有用於導航的方向鍵
trackball:設備具有用於導航的軌跡球
wheel:設備有方向滾輪用於定位,不常用
19、Dimension(尺寸)
20、Version(平台版本)
設備支持的 API 級別。例如v4 對應於 API 級別 4,帶有 Android 1.6 或更高版本系統的設備。
2.2、怎麼在AS中創建這些文件夾呢?