在framework中想添加這個(gè)功能,所以寫了個(gè)appliction來實(shí)現(xiàn)一下獲取正在運(yùn)行的應(yīng)用程序:還是先看圖吧: 這個(gè)app主要是簡單的實(shí)現(xiàn)了獲取非系統(tǒng)的應(yīng)用程序和一些常用的系統(tǒng)應(yīng)用程序,顯示在一個(gè)listview中,并添加了點(diǎn)擊(回復(fù)到你打開的界面)和長按事件(關(guān)閉應(yīng)用程序)。 看看代碼吧: 直接貼出來再加上注釋吧(直接寫在一個(gè)文件里): package andorid/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"ImageView android:id="@+id/icon"android:layout_width="wrap_content"android:layout_height="wrap_content"/TextView android:layout_width="40dip"android:layout_height="40dip" / LinearLayout android:orientation="vertical"android:layout_width="wrap_content"android:layout_height="wrap_content" TextView android:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textStyle="bold" / TextView android:id="@+id/info"android:layout_width="wrap_content"android:layout_height="wrap_content" //LinearLayout/LinearLayout main: ?xml version="1/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ListView android:id="@+id/list_view"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical"/ListView/LinearLayout 在manifest文件中要加以個(gè)權(quán)限: uses-permission android:name="android.permission.RESTART_PACKAGES" / 主要是前面的am.killBackgroundProcesses(packageName);方法要這個(gè)權(quán)限。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、行唐網(wǎng)絡(luò)推廣、小程序制作、行唐網(wǎng)絡(luò)營銷、行唐企業(yè)策劃、行唐品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供行唐建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:jinyejixie.com
支持原作者 :
軟硬件環(huán)境
ubuntu 14.04
Android studio2.1.2
Android 5.1.1
前言
一般的Android應(yīng)用程序,在安裝后,程序只能訪問/data/data/${程序包名}下的數(shù)據(jù),如常見的SharedPreferences、database等。
而如果想讓app訪問其它地方的資源時(shí),就必須要獲取更高的權(quán)限,像system或者root。本文完成system權(quán)限的獲取,實(shí)際上一般的應(yīng)用有system的權(quán)限基本上也夠了。
修改apk內(nèi)的AndroidManifest.xml
在app中的AndroidManifest.xml文件中的manifest標(biāo)簽中加入
android:sharedUserId="android.uid.system"
APP工程生成apk文件
android studio或者eclipse自動就幫你生成好了
給apk文件進(jìn)行簽名
這里分兩種情況,一種是廠商,有android系統(tǒng)源碼,既可以把a(bǔ)pp源碼導(dǎo)入到android源碼中,也可以單獨(dú)完成簽名。第二種是你僅僅是做應(yīng)用的,拿不到廠商的source code,而且
這種情況也相當(dāng)普遍,怎么辦?別著急,我們今天就來解決這個(gè)問題。
簽名需要的幾個(gè)文件
這個(gè)你必須找廠商要,signapk.jar、platform.x509.pem、platform.pk8,如果你有source code,signapk.jar存放在prebuilts/sdk/tools/,platform.* 兩個(gè)key文件存放在build/target/product/security/下
簽名具體命令
java -jar signapk.jar platform.x509.pem platform.pk8 unsigned.apk signed.apk
制作新的image文件
如果你的應(yīng)用需要預(yù)置到android系統(tǒng)中,將signed.apk導(dǎo)入到android源碼目錄中(一般是out/target/product/${hardware}/system/app/下),編譯生成新的
system.img,再燒錄到目標(biāo)板中。如果不需要預(yù)置,那就直接adb install好了。
測試
待系統(tǒng)啟動后adb shell到板子上,ls -l查看app安裝目錄(/data/data/${程序包名})的權(quán)限,看看是不是變成system:system了。
android應(yīng)用程序詳細(xì)信息可以通過PackageManger管理類來獲得,PackageManger管理所有程序包的信息,包括包名、label、icon、占用大小、是系統(tǒng)程序還是第三方程序等信息。
PackageManager pm = this.getPackageManager(); // 獲得PackageManager對象
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
// 通過查詢,獲得所有ResolveInfo對象.
ListResolveInfo resolveInfos = pm
.queryIntentActivities(mainIntent, PackageManager.MATCH_DEFAULT_ONLY);
如果你希望獲取某單個(gè)應(yīng)用程序信息,只需要通過pm對象獲取當(dāng)中的包名,再與你想要獲得應(yīng)用程序的包名比較一下,再獲取相應(yīng)的屬性就可經(jīng)了。
文章題目:android獲取程序,android 獲取當(dāng)前語言
網(wǎng)址分享:http://jinyejixie.com/article40/dssegho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、企業(yè)建站、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)