Android如何获取手机上面已经安装的app

Android如何获取手机上面已经安装的app,第1张

安卓系统手机下载软件方法有很多,为您提供以下几种方式,请您参考:

1通过手机中“三星应用商店”或“Galaxy特色订制”搜索需要的软件并下载安装。

2通过手机浏览器搜索需要的软件下载安装(若是自带的浏览器,下载的安装包保存在我的文件-Download文件夹中)。

3通过第三方助手类软件下载安装需要的程序。

4通过电脑下载APK格式的安装包,然后传输到手机中安装。

packageManagergetInstalledApplications()返回一个列表都是安装在设备上的应用程序包。如果我们把 flag GET_UNINSTALLED_PACKAGES设定,一个列表中的所有应用,包括那些设置为dont_delete_data(部分已安装的应用程序的数据目录)将返回。

你可以看到附件中的截图,我们将创建一个列表显示所有已安装的应用程序。

snippet_list_rowxml--------------------这个布局是由ListView适配器用于表示应用程序的细节。它显示应用程序图标、应用程序名称和应用程序包。

<xml version="10" encoding="utf-8"><LinearLayout xmlns:android="http://schemasandroidcom/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/app_icon" android:layout_width="50dp" android:layout_height="50dp" android:padding="3dp" android:scaleType="centerCrop" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_vertical" android:orientation="vertical" android:paddingLeft="5dp" > <TextView android:id="@+id/app_name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:textStyle="bold" /> <TextView android:id="@+id/app_paackage" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" /> </LinearLayout></LinearLayout>

AllAppsActivityjava ##这是用于初始化和列表已安装的应用程序的主要应用程序类。从packagemanage得到应用细节列表是一个耗时的任务,我们将在AsyncTask里面做。同时,类使用自定义适配器“自定义listview applicationadapter”。 package comjavatechiglistapps;import javautilArrayList;import javautilList;import androidappAlertDialog;import androidappListActivity;import androidappProgressDialog;import androidcontentActivityNotFoundException;import androidcontentDialogInterface;import androidcontentIntent;import androidcontentpmApplicationInfo;import androidcontentpmPackageManager;import androidnetUri;import androidosAsyncTask;import androidosBundle;import androidviewMenu;import androidviewMenuInflater;import androidviewMenuItem;import androidviewView;import androidwidgetListView;import androidwidgetToast;public class AllAppsActivity extends ListActivity { private PackageManager packageManager = null; private List<ApplicationInfo> applist = null; private ApplicationAdapter listadaptor = null; @Override public void onCreate(Bundle savedInstanceState) { superonCreate(savedInstanceState); setContentView(Rlayoutactivity_main); packageManager = getPackageManager(); new LoadApplications()execute(); } public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflaterinflate(Rmenumenu, menu); return true; } public boolean onOptionsItemSelected(MenuItem item) { boolean result = true; switch (itemgetItemId()) { case Ridmenu_about: { displayAboutDialog(); break; } default: { result = superonOptionsItemSelected(item); break; } } return result; } private void displayAboutDialog() { final AlertDialogBuilder builder = new AlertDialogBuilder(this); buildersetTitle(getString(Rstringabout_title)); buildersetMessage(getString(Rstringabout_desc)); buildersetPositiveButton("Know More", new DialogInterfaceOnClickListener() { public void onClick(DialogInterface dialog, int id) { Intent browserIntent = new Intent(IntentACTION_VIEW, Uriparse("http://stacktipscom")); startActivity(browserIntent); dialogcancel(); } }); buildersetNegativeButton("No Thanks!", new DialogInterfaceOnClickListener() { public void onClick(DialogInterface dialog, int id) { dialogcancel(); } }); buildershow(); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { superonListItemClick(l, v, position, id); ApplicationInfo app = applistget(position); try { Intent intent = packageManager getLaunchIntentForPackage(apppackageName); if (null != intent) { startActivity(intent); } } catch (ActivityNotFoundException e) { ToastmakeText(AllAppsActivitythis, egetMessage(), ToastLENGTH_LONG)show(); } catch (Exception e) { ToastmakeText(AllAppsActivitythis, egetMessage(), ToastLENGTH_LONG)show(); } } private List<ApplicationInfo> checkForLaunchIntent(List<ApplicationInfo> list) { ArrayList<ApplicationInfo> applist = new ArrayList<ApplicationInfo>(); for (ApplicationInfo info : list) { try { if (null != packageManagergetLaunchIntentForPackage(infopackageName)) { applistadd(info); } } catch (Exception e) { eprintStackTrace(); } } return applist; } private class LoadApplications extends AsyncTask<Void, Void, Void> { private ProgressDialog progress = null; @Override protected Void doInBackground(Void params) { applist = checkForLaunchIntent(packageManagergetInstalledApplications(PackageManagerGET_META_DATA)); listadaptor = new ApplicationAdapter(AllAppsActivitythis, Rlayoutsnippet_list_row, applist); return null; } @Override protected void onCancelled() { superonCancelled(); } @Override protected void onPostExecute(Void result) { setListAdapter(listadaptor); progressdismiss(); superonPostExecute(result); } @Override protected void onPreExecute() { progress = ProgressDialogshow(AllAppsActivitythis, null, "Loading application info"); superonPreExecute(); } @Override protected void onProgressUpdate(Void values) { superonProgressUpdate(values); } }}

package comjavatechiglistapps;import javautilList;import androidcontentContext;import androidcontentpmApplicationInfo;import androidcontentpmPackageManager;import androidviewLayoutInflater;import androidviewView;import androidviewViewGroup;import androidwidgetArrayAdapter;import androidwidgetImageView;import androidwidgetTextView;public class ApplicationAdapter extends ArrayAdapter<ApplicationInfo> { private List<ApplicationInfo> appsList = null; private Context context; private PackageManager packageManager; public ApplicationAdapter(Context context, int textViewResourceId, List<ApplicationInfo> appsList) { super(context, textViewResourceId, appsList); thiscontext = context; thisappsList = appsList; packageManager = contextgetPackageManager(); } @Override public int getCount() { return ((null != appsList) appsListsize() : 0); } @Override public ApplicationInfo getItem(int position) { return ((null != appsList) appsListget(position) : null); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (null == view) { LayoutInflater layoutInflater = (LayoutInflater) context getSystemService(ContextLAYOUT_INFLATER_SERVICE); view = layoutInflaterinflate(Rlayoutsnippet_list_row, null); } ApplicationInfo applicationInfo = appsListget(position); if (null != applicationInfo) { TextView appName = (TextView) viewfindViewById(Ridapp_name); TextView packageName = (TextView) viewfindViewById(Ridapp_paackage); ImageView iconview = (ImageView) viewfindViewById(Ridapp_icon); appNamesetText(applicationInfoloadLabel(packageManager)); packageNamesetText(applicationInfopackageName); iconviewsetImageDrawable(applicationInfoloadIcon(packageManager)); } return view; }};

安卓系统想查看软件安装位置需要有root权限,获得root权限后,安装re管理器,进入/data/app即可以看到自己安装的软件,进入/syster/app即可看到系统本身的软件,注意,这里面的东西不懂最好不要动,删错东西的话系统出毛病只能刷机了。

1 APK是AndroidPackage的缩写,即Android安装包(apk)。

打开方法;

1

首先,要确定你的APK文件的性质,是在电脑的什么位置,电脑中是否有能打开APK文件的软件,如果没有的话,要安装些类软件或在手机里打开APK文件。

2

apk软件是基于LINX开发的,而我们现在用的电脑系统一般都是windos操作系统,所以肯定不能直接打开。所以要借助一些软件或其它方法才能在电脑中打开。

3

APK文件是zip格式,可以在电脑中右键点击文件选择打开方式,然后选择用winrar打开来查看文件中的内容。或者更改文件后缀名为rar,然后用winrar文件解压,会得到一个文件夹,里面就是改程序的源文件了。

4

如果想在电脑中打开下载了的apk文件,也可以下载一豌豆荚或91助手类型的软件,安装在电脑上,这时,把手机通过USB数据线连接到电脑上,在电脑上可以读出APK文件并且可以安装在手机。

5

如果用带有安卓(Android)系统手机的“ES浏览器”找到存放手机内的apk文件,点击后等于把文件进行了解压,这时会问你是否安装此文件,你如果同意的话,此软件就会安装在你的手机内了。这是用手机直接打开APK文件的最好办法。

6

其实APK文件只是zip格式文件一种,是安装在安卓手机上,后缀名为apk的一种类型的文件。安卓系统手机的操作系统本身有打开这类文件的软件,通过UnZip解压后,可以便可以直接安装在安卓手机系统内了。

apk

APK是AndroidPackage的缩写,即Android安装包(apk)。APK是类似SymbianSis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。

apk文件和sis一样,把androidsdk编译的工程打包成一个安装程序文件,格式为apk。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVMexecutes的简称,即AndroidDalvik执行程序,并非JavaME的字节码而是Dalvik字节码。

Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和WindowsMobile中的PE文件有区别。

文件格式编辑

格式定义

在Android平台中,dalvikvm的执行文件被打包为apk格式,最终运行时加载器会解压,然后获取编译后的androidmanifestxml文件中的permission分支相关的安全访问,但仍然存在很多安全限制。

如果你将apk文件传到/system/app文件夹下,会发现执行是不受限制的。安装的文件可能不是这个文件夹,而在androidrom中,系统的apk文件默认会放入这个文件夹,它们拥有着root权限。

安卓系统自带的系统软件是不允许移动的,只存在于手机内存中。如果你不需要一些系统自带的软件,可以将手机ROOT,再删除这些软件。

下载安装的软件一般默认安装在手机内存中(当然在安装时有时也可以设置安装在SD卡中)。

首先你需要将手机ROOT,然后安装360手机卫士或安卓优化大师之类的软件,将ROOT权限授权给这些软件,这些软件有“软件搬家”功能,可以将安装在手机内存中的软件移动到SD卡中,节省手机内存空间。

工具

手机

Android 9 操作系统

方法

删除的软件如何找回一般有两种方式,一种是通过应用商店进行重新下载安装,另一种方法就是找到备份软件进行重新恢复安装。两种方法虽然不同但是恢复后的软件一般不会保留手机之前所使用的数据,所以对于一些终于的软件最好的办法是不要删除,如果软件数据不重要那建议进行备份这样重新安装时就会比较方便。下面来介绍一下如何恢复软件。以本手机为例,不同品牌不同型号的安卓手机操作步骤略有区别仅供参考。首先找到”应用中心“。

若要重新下载安装直接在”应用中心“搜索框中进行搜索下载安装即可。这种方法比较常用就不过多叙述。下面我们来介绍如何通过备份恢复的方法进行恢复。首先点击右下角”我的“,进入个人中心。

进入个人中心后我们会看到”应用备份“的图标,点击这个图标进入。一般系统出厂时所携带的软件系统会自动进行备份,我们可以在里面直接找到,如果是我们自己下载安装的软件要提前通过这个功能进行备份然后才能恢复。另外出厂所带软件一般在重新恢复出厂设置后会自动进行安装。

进入”应用备份“后,我们会看到有两个选项,一个是”备份应用“,我们需要进行备份时可以点击这个选项,选择要进行备份的软件进行备份即可。如果要恢复之前所备份的应用,那么我们就选择”恢复应用“。

选择”恢复应用“后软件就会显示之前我们所备份的应用,选择要恢复的软件。这里是方便展示就用一款系统自带软件进行展示,一般恢复软件可以进行批量操作,可以同时恢复多个软件。

选择要恢复的软件并确定后,软件会自动进行下载安装。这时我们就静静等待软件进行下载安装即可,当然此时是从云端进行恢复所以需要进行联网下载,下载过程中要保持网络通畅。

安装完成后,所安装的软件就会显示在我们的手机桌面上了。当然不同手机的设置方法略有区别,但是恢复方法就比较类似,大家可以进行参考恢复自己删除的软件。

当然有的手机的云存储功能可能是设置里面或者在桌面上,我们要根据自身手机的功能进行恢复。如果有自动云备份功能,我们可以在云备份中恢复想要恢复的软件。恢复步骤和上面所介绍的类似。

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/shuma/766427.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-05
下一篇2023-08-05

随机推荐

  • 有没有人听说过艾纳菲这个牌子的护肤品呢?套装的价格方面是多少钱呢?效果好么?对比起兰蔻产品那个好用

    你能买到艾纳菲品牌化妆品的地方,那里的服务人员就会告诉你药监局备案码告诉你怎么查,正规厂家产品至于价格方面,每个区域都不同对比兰蔻,没有可比性,兰蔻基础保养艾纳菲专业线,更有针对性,美白效果很好安全。艾纳菲护肤品是正规厂家的产品,定位比较高

    2024-04-15
    44100
  • 海蓝之谜精粹水真假怎么辨别

    海蓝之谜精粹水是一款备受瞩目的护肤品,由于其卓越的保湿和修复功效,成为了众多消费者追捧的对象。市场上也存在着一些假冒伪劣的产品,让消费者很难辨别真假。如何判断海蓝之谜精粹水的真伪呢?下面从几个角度为大家分析。我们可以从包装上入手。正品海蓝之

    2024-04-15
    48000
  • 妮维雅唇膏好用吗?

    说到妮维雅的产品许多人首先会想到就妮维雅男士洗面奶以及平衡爽肤水等等,而除了这些产品之外,许多人同样也都是非常喜欢用妮维雅的唇膏的,那么妮维雅唇膏真的好用吗?妮维雅的唇膏哪一款最好用呢?妮维雅唇膏效果怎么样?1、妮维雅唇膏好用吗妮维雅天然型

    2024-04-15
    28100
  • 天气太套盒里面那个棍儿是干嘛用的

    天气丹的小勺子是用来取用护肤品, 尤其是眼霜的,因为眼霜每次只需要点涂一点点就能让眼周的肌肤得到充分的滋润,如果用手蘸取, 可能会涂抹过多,造成浪费的同时还有可能导致眼角产生脂肪粒,影响使用效果,所以使用小勺子可以很好地掌控。天气丹套盒是用

    2024-04-15
    31500
  • 妮维雅防晒霜好用吗

    根据小编自己亲测之后的感觉来看还是很不错的,旗下的防晒霜有多种不同类型,有的是以黄盖呈现的喷雾,有的是以挤压头呈现的,也有一些是针对儿童而生的。不管是哪一种,其实都具有着很容易晕开、安全系数比较高的特色,特别是旗下的防晒喷雾非常好用,小小一

    2024-04-15
    34300
  • 李佳琦直播预告清单1.12 李佳琦直播预告1.12

    李佳琦直播预告清单112 李佳琦直播预告112。李佳琦1月12日晚间18点直播美妆专场,那么本次李佳琦会给我们带来什么商品呢下面小编给大家带来李佳琦1月12日直播的清单预告,一起来看看吧。李佳琦直播预告清单112一、直播时间李佳琦 1月12

    2024-04-15
    29000
  • 完美芦荟胶能与妮维雅男士多重控油啫喱水一起用吗?

    完美芦荟胶和妮维雅男士多重控油啫喱水可以一起使用,但需要注意一些细节。使用完美芦荟胶时,应先将脸部洗净,然后取适量芦荟胶涂抹于脸部,轻轻按摩至吸收,这样可起到舒缓保湿的作用,而且不会造成过度油脂分泌。之后,使用妮维雅男士多重控油啫喱水,只需

    2024-04-15
    29900

发表评论

登录后才能评论
保存