編輯:關於Android編程
Intent intent=new Intent(); ComponentName comp=new ComponentName(PocketSphinxDemo.this,help.class );//使用第三種構造器 intent.setComponent(comp); startActivity(intent);注意:這裡PocketSphinxDemo.this指定的是我們應用程序的包,help.class為包內將要啟動的組件類。 (2)intent啟動第三方應用程序
Intent intent=new Intent();
intent.setClassName("com.tencent.mobileqq",
"com.tencent.mobileqq.activity.SplashActivity");
startActivity(intent);
注意:關於第三方應用程序的包名(com.tencent.mobileqq)、類名()com.tencent.mobileqq.activity.SplashActivity,我們可以通過反編譯其.apk獲取AndroidManifest.xml文件的"package"屬性,以及action聲明為MAIN常量的"android:name"屬性,具體如何反編譯獲取我將會在下面文章中詳細述說。
(3)intent啟動系統程序
這部分我覺得使用Intent intent=new Intent(); intent.setClassName(PocketSphinxDemo.this,help.class );//使用第三種構造器 startActivity(intent);注意:這裡PocketSphinxDemo.this指定的是我們應用程序的包,help.class為包內已經實現了的將要啟動的組件類 (2)intent啟動第三方應用
Intent intent=new Intent();
intent.setClassName("com.tencent.mobileqq","com.tencent.mobileqq.activity.SplashActivity");
startActivity(intent);
注意:關於第三方應用程序的包名(com.tencent.mobileqq)、類名()com.tencent.mobileqq.activity.SplashActivity,我們可以通過反編譯其.apk獲取AndroidManifest.xml文件的"package"屬性,以及action聲明為MAIN常量的"android:name"屬性,具體如何反編譯獲取我將會在下面文章中詳細述說。
3.利用intent-filter配置(Intent對象的5個屬性)
Intent的Action、Category屬性都是一個普通的字符串,其基本思想是:在發出"意圖"的組件中,調用Intent成員方法設置好其計劃啟動組件的一些特征,然後在接收"意圖"組件的AndroidManifest.xml文件中的啟動系統相機
Intent intent=new Intent();
intent.setAction(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); //啟動相機app
startActivity(intent);
啟動浏覽器
Uri uri=Uri.parse("http://blog.csdn.net/u012637501");
Intent intent=new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri);
startActivity(intent);
(2)利用intent-filter啟動應用自身組件
a.創建一個Intent對象,並自定義字符串設置給intent的屬性
Intent intent=new Intent(); //創建一個Intent對象
String data="lee://www.fkjava.org:8888/mypath"; //自定義字符串
Uri uri=Uri.parse(data); //將字符串轉換為Uri
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri); //設置Intent對象Data屬性
startActivity(intent);
或者
Intent intent=new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("lee://www.fkjava.org:8888/mypath"));
startActivity(intent);
b.實現想要啟動的一個及以上組件(比如SecondaryActivity)
c.在AndroidManifest.xml中為組件(如Activity)添加一個元素並設置可以全部設置,也可以選擇性設置。經過上述設置,intent就會根據其他組件的
2.apk反編譯生成程序的XML配置、圖片、語言等資源文件
(1)下載上述反編譯工具包,打開apk2java目錄下的apktool1.4.1文件夾,內含三個文件:aapt.exe,apktool.bat,apktool.jar <喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"/uploadfile/Collfiles/20141119/2014111908391056.png" alt="\">
注:裡面的apktool_bk.jar是備份的老版本,最好用最新的apktool.jar
(2)切換到apktool1.4.1文件夾,使用apktool.bat工具進行反編譯

a.切換命令:

b.編譯命令:

apktool.bat 命令行解釋:apktool.bat d -f [apk文件 ] [輸出文件夾]
c.result文件夾下,反編譯的結果:


3.重新打包成apk
將反編譯完的文件重新打包成apk,很簡單,輸入apktool.bat b abc123(你編譯出來文件夾)即可,命令如下:

打包apk後的文件在目錄C:\HelloAndroid下,生成了兩個文件夾:
build
dist
其中,打包生成的HelloAndroid.apk,在上面的dist文件夾下.
4.apk反編譯得到Java源代碼下載上述反編譯工具包,打開apk2java目錄下的dex2jar-0.0.9.9文件夾,內含apk反編譯成java源碼工具,以及源碼查看工具。
dex2ja:rapk反編譯工具,是將apk中的classes.dex轉化成jar文件
jdgui:源碼查看工具,是一個反編譯工具,可以直接查看反編譯後的jar包源代碼
dex2jar 和 jdgui 最新版本下載,分別見google code:
dex2jar(google code)
jdgui(google code),最新版本請見 官方
(1)首先將apk文件後綴改為zip並解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的,將classes.dex復制到dex2jar.bat所在目錄dex2jar-0.0.9.9文件夾。
(2)在命令行下定位到dex2jar.bat所在目錄,運行dex2jar.bat classes.dex生成classes_dex2jar.jar
(3)進入jdgui文件夾雙擊jd-gui.exe,打開上面生成的jar包classes_dex2jar.jar,即可看到源代碼了,如下圖:
HelloAndroid源碼在反編譯前後的對照如下:



Intent intent=new Intent();
intent.setClassName("com.tencent.mm","com.tencent.mm.app.MMApplication");
startActivity(intent);
Android開發學習之路--RxAndroid之lambda
RxJava的簡單使用基本上也了解了,其實還有一個比較好玩的就是java8才有的lambda了。lambda在android studio下的環境搭建下載java8下面就
Android性能優化——工具篇
Android性能優化是Android開發中經常遇見的一個問題,接下來將對Android性能優化方面的知識點做一個簡單的梳理和總結,將從工具和代碼兩方面進行梳理。所謂工欲
Android菜鳥的成長筆記(28)——Google官方對Andoird 2.x提供的ActionBar支持
在Google官方Android設計指南中(鏈接:http://www.apkbus.com/design/get-started/ui-overview.html)有一
Android編程之單元測試實例分析
本文實例講述了Android編程之單元測試用法。分享給大家供大家參考,具體如下:在實際開發中,開發android軟件的過程需要不斷地進行測試。使用Junint測試框架,是