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

随机推荐

  • 哪个牌子的化妆品性价比高

    朋友你好!性价比高的化妆品有国产彩妆排行榜前十名卡姿兰——卡姿兰(香港)有限公司2002年培育,2003年开始终端操作,2005年市场开始起色,2006年品牌风生水起,2007年到达顶峰,2008年终端优化,2009年大刀阔斧的消费者品牌提

    2024-04-15
    25000
  • 天气丹使用顺序图解,天气丹用法步骤

    天气丹护肤产品中包括很多款,针对皮肤的效果也是不一样的,在使用的时候一定要注意它的顺序,如果使用顺序错误很容易导致护肤品达不到最佳的效果,那么天气丹使用顺序图解是什么?天气丹用法步骤是什么呢?天气丹的套盒中产品是十分全面的,其中包括天气丹水

    2024-04-15
    26300
  • 哪一种精华的性价比更高啊?

    雅诗兰黛小棕瓶——精华界的常青树啊!说到精华怎能没有大名鼎鼎的小棕瓶。这款精华与其说是入门抗老精华不如说是一款维稳精华。看似无功无过,其实它一直在帮助你的肌肤保持一个稳定的状态。里面添加了一些可人的保湿、抗氧化成分:角鲨烷、咖啡因、酵母提取

    2024-04-15
    26000
  • 春季旺销产品有哪些

    春天是一个美好的季节,但是春天乍暖还寒,所以保暖的家纺用品一定要准备好哦。还有春天潮湿多雨,家居除湿、干衣的电器也是非常重要的。季节的变换,春季也不能忘了好好护肤。接下来小编从春季生活电器、春季家纺、春季护肤三个方面入手,为大家推荐春日好物

    2024-04-15
    20100
  • 奔驰伊斯坦纳架子号在哪?

    奔驰伊斯坦纳的车架号(VIN码)通常位于以下位置之一:1 发动机舱内:车架号通常位于发动机盖下方,发动机舱前部墙壁上。2 驾驶室内:车架号可能位于仪表板左侧、驾驶员座椅下方、倒车镜附近或中央控制台上。3 车辆外侧:车架号有时也可能位于车辆外

    2024-04-15
    9800
  • 神仙水和神仙露的区别

    很抱歉,我并不了解“神仙露”这种产品,因此无法直接对“神仙水”和“神仙露”进行比较。不过,我可以为您介绍一下“神仙水”。“神仙水”是大家对SK-II护肤精华露的爱称,尽管其官方命名为“神仙露”。这是一种精华水,主要成分是pitera酵母精华

    2024-04-15
    10500
  • MZC新肌修护精华液与精华油有什么区别吗?

    MZC新肌修护精华液和精华油的区别MZC新肌修护精华液和精华油都是护肤品中的一种,它们的作用都是滋润和修复肌肤。但是,它们的成分和使用方法有所不同。首先从成分上看,精华液的主要成分是水,它在质地上更加清爽轻盈,容易被皮肤吸收。而花梦花精华油

    2024-04-15
    17100

发表评论

登录后才能评论
保存