編輯:關於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就會根據其他組件的
(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);
RxJava的簡單使用基本上也了解了,其實還有一個比較好玩的就是java8才有的lambda了。lambda在android studio下的環境搭建下載java8下面就
Android性能優化是Android開發中經常遇見的一個問題,接下來將對Android性能優化方面的知識點做一個簡單的梳理和總結,將從工具和代碼兩方面進行梳理。所謂工欲
在Google官方Android設計指南中(鏈接:http://www.apkbus.com/design/get-started/ui-overview.html)有一
本文實例講述了Android編程之單元測試用法。分享給大家供大家參考,具體如下:在實際開發中,開發android軟件的過程需要不斷地進行測試。使用Junint測試框架,是