精华内容
下载资源
问答
  • Android APP的安装路径

    万次阅读 2018-03-19 09:13:28
    Android应用安装路径有两种情况: system/app 系统自带的应用程序,无法删除。root后可以删除,注意可能造成系统崩溃,不过有的垃圾捆绑软件只能这么删除了 data/app 用户程序安装的目录,有删除权限。安装时把apk...

    小Tips:app安装在哪个路径?

    2021/6/10更新:

    1、安装路径共五个

    1. system/app 系统自带的应用程序,无法删除。root后可以删除
    2. system/priv-app 比system/app 中的应用权限更加高,如Launcher,系统设置等
    3. vendor/app 设备厂商提供的app
    4. system_ext/app 真实路径在 system/system_ext/app
    5. data/app 用户自己安装的app

    data/data/packageName用于存储应用数据
    data/dalvik-cache将apk中的dex文件放在这个目录中

    1. system/app中保存系统自带应用,需要有root权限才能访问。所以系统app在root之前是无法删除和修改的。当需要升级系统应用的时候,会将更新版本安装在data/app目录中,当启动app的时候,系统会将应用指向data/app目录中。用户当然可以删除更新版本,但是删除之后,系统会再次将system/app中的版本提供给你,即删除新版,还你旧版。

    2. 当然在root之后,我们是可以对system/app目录进行操作。但是更新时仍将更新版本安装在data/app中。所以如果用户想替换system/app中的版本,就只能手动将新版apk push到system/app中,待系统重启之后,会安装push版本。

    2、apk安装过程

    3.1、创建应用数据目录data/data/packageName,用于存储譬如数据库、share_preferences、so库等;

    3.2、解压缩apk,提取dex可执行文件,存放于data/dalvik-cache目录中,系统会对dex文件做一些优化,生成odex文件,将其存储。

    When you install an application on Android, it performs some modifications and optimizations on that application’s dex file (the file that contains all the dalvik bytecode for the application). It then caches the resulting odex (optimized dex) file in the /data/dalvik-cache directory, so that it doesn’t have to perform the optimization process every time it loads an application.

    3.3、检查apk的签名文件;

    3.4、使用PMS解析AndroidMenifest.xml文件,包括:四大组件的信息,包括Receiver,默认启动的Activity等;

    3.5、根据sharedUserId,为应用分配UID,用户id是唯一的,因为android是一个linux系统。同时会为应用分配用户组id,用户组id指的是各种权限,每个权限都在一个用户组中。分配了哪些用户组,就拥有了哪些权限。

    3.6、在Luancher上添加应用图标;

    3.7、将app的包名、版本号、安装路径等保存在data/system/packages.xml文件中,以备下次安装时再次使用;

    安卓系统在每次重启时,都会将所有app都重新安装一遍。1、首先读取上次安装时保存的xml文件;2、扫描安装保存在特定目录下的apk,包括system/app、vender/app、data/app等;3、为每个app分配UID;4、再次将安装信息保存在本地xml中,便于下次访问。

    **原始内容如下我是分割线

    一. Android应用安装路径有两种情况:

    1. system/app 系统自带的应用程序,无法删除。root后可以删除,注意可能造成系统崩溃,不过有的垃圾捆绑软件只能这么删除了
    2. data/app 用户程序安装的目录,有删除权限。安装时把apk文件复制到此目录。
    3. data/data 存放应用程序的数据。
    4. data/dalvik-cache 将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一)。

    二. APP安装过程:复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录。

    三. APP卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。

    参考
    Apk 安装过程

    APK及相关的Android路径

    展开全文
  • android应用安装路径默认设置

    千次阅读 2013-10-24 10:42:33
    adb shell pm setInstallLocation 2 设置应用默认安装路径到sd卡
    adb shell pm setInstallLocation 2 设置应用默认安装路径到sd卡
    展开全文
  • Android Studio 默认安装路径:C:\Program Files\Android\Android StudioSDK 默认安装路径:C:\Users\计算机用户名\AppData\Local\Android\sdk计算机用户名:就是你登录计算机输入的账号...

    Android Studio 默认安装路径:C:\Program Files\Android\Android Studio

    SDK 默认安装路径:C:\Users\计算机用户名\AppData\Local\Android\sdk

    gradle默认安装路径:C:\Android\Android Studio\gradle\m2repository\com\android\tools\build\gradle

    计算机用户名:就是你登录计算机输入的账号

    展开全文
  • android6.0下载路径设置

    千次阅读 2017-01-06 07:56:26
    android6.0下载文件路径设置

    android6.0下载文件路径设置

    最近有很多朋友问我,android6.0下载文件怎样设置文件的保存路径。今天就把android6.0下载文件路径设置总结一下。

    在android 6.0以前,你可以只关注外置存储是否挂载即可,并且可以直接在sdcard目录下创建“xxx”文件夹保存下载的文件(例如下载一张图片a.jpg到sdcar“xxx”文件夹下,我们只需要在清单文件中配置对sdcard读写权限,就可以设置下载路径“mnt/sdcard/xxx/a.jpg”)。但是从6.0以后,也就是M系统后,还需要判断是否有读写权限,只有具备这些权限才可以读写外置存储。并且要通过这个方法:Environment.getExternalStorageDirectory()获取路径:/storage/emulated/0
    默认存在,声明权限则可读写(6.0和以后系统还需要向用户申请同意才可以)。
    下面直接上代码:
    Java代码:

    package com.hc.android6.download;
    import android.os.Environment;
    import android.os.Handler;
    import android.os.Message;
    import android.os.SystemClock;
    import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ProgressBar;
    import android.widget.Toast;
    import org.hpg.weather.download.R;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.URL;
    import java.net.URLConnection;
    
    
    public class MainActivity extends ActionBarActivity {
    private final int TODOWN = 1;
    private static final String TAG = "hc";
    private File file1;
    private int contentLength;
    private Handler mhandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case TODOWN:
    //                设置下载进度条的进度
                    if (file1.length() == contentLength) {
                        Toast.makeText(getApplicationContext(), "下载完成", Toast.LENGTH_SHORT).show();
    //                        隐藏进度条
                        mprogressBar.setVisibility(View.GONE);
                    } else {
    
                        setmprogressbar();
    
                    }
                    break;
            }
        }
    };
    
    private void setmprogressbar() {
        mprogressBar.setProgress((int) file1.length());
    }
    
    String hcUrl = "http://p1.so.qhmsg.com/t016269623a51ead026.jpg";
    private Button button;
    private ProgressBar mprogressBar;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.download);
        mprogressBar = (ProgressBar) findViewById(R.id.progressBar);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        download();
                    }
                }).start();
            }
        });
    }
    
    
    //下载
    private void download() {
        Message message = new Message();
        message.what = TODOWN;
        try {
            URL url = new URL(hcUrl);
            //打开连接
            URLConnection conn = url.openConnection();
            //打开输入流
            InputStream is = conn.getInputStream();
            //获得长度
            contentLength = conn.getContentLength();
            mprogressBar.setMax(contentLength);
            Log.e(TAG, "contentLength = " + contentLength);
            //创建文件夹 HC,在存储卡下
            String dirName = Environment.getExternalStorageDirectory() + "/HC/";
            File file = new File(dirName);
            //不存在创建
            if (!file.exists()) {
                file.mkdir();
            }
            //下载后的文件名
            String fileName = dirName + "hcdown.jpg";
            file1 = new File(fileName);
            if (file1.exists()) {
                file1.delete();
            }
            //创建字节流
            byte[] bs = new byte[1024];
            int len;
            OutputStream os = new FileOutputStream(fileName);
            //写数据
            while ((len = is.read(bs)) != -1) {
                os.write(bs, 0, len);
                mhandler.sendEmptyMessage(TODOWN);
                SystemClock.sleep(100);
    
            }
            //完成后关闭流
            Log.e(TAG, "download-finish");
            Log.e(TAG, file1.length() + "");
            os.close();
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    }
    

    xml布局文件

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    
    tools:context="com.hc.android6.download.MainActivity">
    
    <Button
        android:layout_marginTop="10dp"
        android:id="@+id/download"
        android:text="开始下载图片"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    
    <ProgressBar
        android:layout_below="@+id/download"
        android:layout_marginTop="10dp"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="5dp"
        android:id="@+id/progressBar" />
    </RelativeLayout>
    

    这里写图片描述

    展开全文
  • Android studio安装路径更改

    千次阅读 2019-04-29 23:20:53
    如何更改Android studio中SDK,AVD的默认路径) Android studio中SDK,AVD的默认路径的更改 对于大部分首次下载android studio开发android的人来说, 由于Android Studio的自动更新,将会默认把SDK,AVD下载到我们的C...
  • Android Studio安装路径

    2016-11-14 14:01:47
    为什么总是通不过 ![图片说明](https://img-ask.csdn.net/upload/201611/14/1479132054_254870.png)
  • 默认安装过程中的一些路径 SDK路径 C:\Users\Administrator\AppData\Local\Android\sdk ...软件安装路径 C:\Program Files\Android\Android Studio 默认工程目录 C:\Users\Administrator\And
  • Android studio SDK默认安装路径

    千次阅读 2020-03-13 11:35:48
    Android studio安装过程中的一些默认路径 SDK路径 C:\Users\Administrator\AppData\Local\Android\sdk 软件安装路径 C:\Program Files\Android\Android Studio Gradle插件目录 C:\Users\Administrator\.gradle\wr...
  • Android studio默认安装路径在哪里?

    万次阅读 2016-08-05 10:48:13
    默认安装过程中的一些路径 SDK路径 C:\Users\Administrator\AppData\Local\Android\sdk ...软件安装路径 C:\Program Files\Android\Android Studio 默认工程目录 C:\Users\Administrator\AndroidstudioPr
  • Android Studio设置或修改Android SDK路径

    万次阅读 2016-04-21 15:08:26
    Android Studio设置或修改Android SDK路径
  • android 获取apk安装路径、安装包路径

    万次阅读 2015-01-13 16:19:58
    // 获取当前程序路径 /data/data/com.example.androiduninstall3/files String path1 = getApplicationContext().getFilesDir().getAbsolutePath(); // 获取该程序的安装包路径 /data/app/...
  • android6.0下载文件路径设置最近有很多朋友问我,android6.0下载文件怎样设置文件的保存路径。今天就把android6.0下载文件路径设置总结一下。在android 6.0以前,你可以只关注外置存储是否挂载即可,并且可以直接在...
  • Android studio默认安装路径

    千次阅读 2017-02-12 00:50:52
    在运用Android studio进行Android开发时,有时需要查找一些文件的路径,这里给出在官网下载Android Studio(带SDK)并按默认安装到Windows系统后,其中几个重要文件的路径,以便在后续开发过程中有需要时能够很方便...
  • android studio gradle home 路径设置

    万次阅读 2017-02-15 17:48:49
    gradle home路径设置
  • Android studio默认安装路径

    千次阅读 2017-01-04 09:01:05
    SDK路径 C:\Users\Administrator\AppData\Local\Android\sdk软件安装路径 C:\Program Files\Android\Android Studio默认工程目录 C:\Users\Administrator\AndroidstudioProjectsGradle插件目录 C:\Users\A
  • 修改android模拟器的默认安装路径

    千次阅读 2013-08-14 09:50:26
    eclipse中AVD的默认安装路径是"Documents and Settings\user\.android",我们可以修改它。   在环境变量中新建一个变量,name=ANDROID_SDK_HOME,value=你想要的avd安装路径,然后重启eclipse,点击window-...
  • 现在给大家介绍一下Android Studio中如何设置Android SDK、JDK、NDK的路径。 快捷键:Ctrl+Alt+Shift+S 或:File==>Project Structure
  • 安卓android的sdk安装路径和方法

    千次阅读 2017-09-21 15:48:28
    http://www.androiddevtools.cn/http://blog.csdn.net/dr_neo/article/details/49870587http://tools.android-studio.org/index.php/sdk/下载可以安装的文件installer_r24.4.1-windows.exe安装JDK1.8SDK7.1和SDK5.11...
  • 1、进入命令控制台,路径进入flutter 项目下的根目录 2、执行如下命令: flutter config --android-sdk /path/to/android/sdk flutter config --android-studio-dir /path/to/android/studio
  • (需要到Android Studio的bin目录下找到 idea.properties 这个文件,disable.android.first.run 的值等于true, 即disable.android.first.run=true 如果没有则直接添加) 如果SDK设置edit无法点击,那么需要考虑用...
  • android 程序安装路径选择

    千次阅读 2012-05-21 14:46:56
    android:installLocation可以设置为"auto"、"internalOnly"、"preferExternal"三个值中的任何一个. auto:程序可能被安装在外部存储介质上(例如:SD Card),但是默认会被安装到手机内存中.当手机内存为空时,程序将被...
  • Android查看自己的SDK和JDK安装路径

    千次阅读 2018-11-30 15:41:52
    Android查看自己的SDK和JDK安装路径: 直接看图: 打开之后: 上面是 SDK,下面是 JDK。
  • Android 获取apk安装路径、安装包路径

    千次阅读 2020-07-10 23:28:36
    // 获取当前程序路径 /data/data/com.example.androiduninstall3/files String path1 = getApplicationContext().getFilesDir().getAbsolutePath(); // 获取该程序的安装包路径 /data/app/...
  • Android Studio 查看sdk 和 jdk 安装路径

    千次阅读 2020-05-07 16:33:47
    Android Studio 查看sdk 和 jdk 安装路径
  • Visual Studio2015设置Android SDK路径

    万次阅读 2015-12-31 14:23:11
    安装VS2015时本来选择了AndroidSDK包的,结果却没下下来,只好自己去下了。现在给大家将一讲如何将VS2015中默认的Android SDK路径设置为自己的Android SDK路径
  • 默认安装路径 java jre C:\Program Files\Java\jre1.8.0_111 java jdk C:\Program Files\Java\jdk1.8.0_111 android studio C:\Program Files\Android\Android Studio android sdk C:\Users\Administra
  • 在应用的配置文件设置apk的安装路径,以下是安装到sdcard上的方式  http://schemas.android.com/apk/res/android"  package="com.ddx.install.activity"  android:versionCode="1"  android:versionName=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 360,368
精华内容 144,147
关键字:

安卓安装路径设置