精华内容
下载资源
问答
  • 安卓google空间
    2021-06-09 07:09:10

    1.系统提示内存空间不足了之后,卸载程序也不会增加多少可用空间,仍然会提示系统内存不足,亲测通过格式化手机可以解决,也就是恢复出厂设置(恢复出厂设置会把所有应用都卸载回到最初界面)。当然这个方法也会让你安装的APP都丢失,如果没必要刷机就再看看下面的办法吧。

    2.打开RE文件浏览器,将/data/dalvik-cache 这个文件夹里面的都是系统缓存文件和卸载定制程序留下来的无用垃圾,可以放心全部删除,系统所需文件重启后能自动生成的,删除后可以感觉到系统内存明显提升,RAM内存释放,重启期间等待时间一到两分钟,期间不要有任何操作。小编实测有效,不过发现锁屏变成默认的。

    3.打开re管理器,找到/data/local/目录,你会看到rights和tmp这两个文件夹(有的可能没有rights这个文件夹,不过没关系),进入tmp文件夹, 你会发现以前安装失败或是安装途中重启后失败的软件都可以在这里找到,然后当然就是删掉它们啦,删完后看看你的手机内存,是不是多了很多了?有兴趣的朋友不妨去尝试下喔!

    4.移动APP到SD卡,这个方法有一定的局限性,但效果不错,不过部分手机不支持这样的功能(yiQIg.cn)。

    5.使用容量较小的主题包,小编之前使用小米桌面,一个比较美观的主题包差不多得有十几M,而默认的主题只有2M多,由于使用的主题都是要求放置在机身内存中的,所以使用小容量的主题包也能很有效的减少内存占用。其他的主题也是一样。

    更多相关内容
  • 今天小编就为大家分享一篇关于android分享纯图片到QQ空间实现方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • Android存储空间总结

    千次阅读 2020-10-25 08:45:36
    Android存储在6.0之前,真的可以用“混乱不堪”来形容。 造成的原因很多,个人认为有以下几点: android早期手机本身的内存很小,大部分app的读写都在sd卡内操作。 用户权限意识薄弱,android 6.0之前直接在安装时...

    概述

    Android存储在6.0之前,真的可以用“混乱不堪”来形容。
    造成的原因很多,个人认为有以下几点:

    1. android早期手机本身的内存很小,大部分app的读写都在sd卡内操作。
    2. 用户权限意识薄弱,android 6.0之前直接在安装时申请权限,用户往往在未知情况下就给予了存储权限。
    3. app为了使自己的应用数据好看,直接将资源存储到sd卡,存储在sd卡的文件将不会计算成该app的内存占用。
    4. app处于卖方市场。如果不给存储权限用户就无法使用app部分甚至全部功能。

    目前,随着Android越发完善,官方也有了自己推荐的存储方案。作为一个android开发者,非常有比较了解一下。

    官方文档:访问应用专属文件

    笔者根据自己的日常使用经验以及官方文档做本文总结,如果有理解有误的地方欢迎评论交流。

    存储方案优劣

    内部存储

    只有自己可以访问,其他应用不能访问。自己访问不需要权限。

    android api一般是:context.getCacheDir() 和 context.getFilesDir()

    使用场景

    • 小程序、小游戏
      (持久文件,适合存储在context.getFilesDir())
      与app相关联,app卸载后就没有用了。
    • 缓存图片、视频
      (临时文件,适合存储在context.getCacheDir())
      随时可以清理掉,清理掉后就是走冷启动逻辑。

    优势

    1. 不需要申请权限,用户无感知。
    2. 不会影响手机存储,app删除,即相关资源一起删除。

    劣势

    1. 无法永久化存储,app删除后会跟着删除。
    2. android手机存储不够时,应用的缓存文件会被删除,回收空间。

    外部存储

    获得读写权限后,大家都可以读写。

    android api一般是:Environment.getExternalStorageDirectory()

    使用场景

    • 照片、视频、文档等本地存储
      需要放到外存,便于用户分享和使用。

    优势

    1. 除非用户主动删除,否则可以一直存储在用户手机中。
      (这个用法很多,比如多个应用可以共享一份资源,不用每个应用都维护一份;当应用删除后第二次安装,能保留部分用户数据以及缓存)
    2. 获得权限后也意味着可以读取手机中的其他内容,如照片,视频等。

    劣势

    1. 需要申请用户权限,部分用户会选择拒绝。
    2. sd卡取出后,就无法访问。
      这个问题主要在较老的机型上,目前大部分手机都没有sd卡了。
    3. 由于app被删除时外存中的数据不会自动被删除,因此就会成为用户的“存储垃圾”。

    常用存储方案

    代码

      private void testAndroidFile() {
        Log.d(TAG, "Environment.getDataDirectory() filepath:" + Environment.getDataDirectory());
        Log.d(TAG, "Environment.getDownloadCacheDirectory() filepath:"
            + Environment.getDownloadCacheDirectory());
        Log.d(TAG, "Environment.getRootDirectory() filepath:" + Environment.getRootDirectory());
        Log.d(TAG, "Environment.getExternalStorageDirectory() filepath:"
            + Environment.getExternalStorageDirectory());
        Log.d(TAG, "context.getCacheDir() filepath:" + getCacheDir());
        Log.d(TAG, "context.getDataDir() filepath:" + getDataDir());
        Log.d(TAG, "context.getFilesDir() filepath:" + getFilesDir());
        Log.d(TAG, "context.getObbDir() filepath:" + getObbDir());
        Log.d(TAG, "context.getNoBackupFilesDir() filepath:" + getNoBackupFilesDir());
        Log.d(TAG, "context.getCodeCacheDir() filepath:" + getCodeCacheDir());
        Log.d(TAG, "context.getExternalCacheDir() filepath:" + getExternalCacheDir());
        Log.d(TAG, "context.getExternalFilesDir(null) filepath:" + getExternalFilesDir(null));
      }
    

    打印结果(手机:小米9、Android10、MIUI 12)

    Environment.getDataDirectory() filepath:/data
    Environment.getDownloadCacheDirectory() filepath:/data/cache
    Environment.getRootDirectory() filepath:/system
    Environment.getExternalStorageDirectory() filepath:/storage/emulated/0
     context.getCacheDir() filepath:/data/user/0/com.example.androidfiletest/cache
    context.getDataDir() filepath:/data/user/0/com.example.androidfiletest
     context.getFilesDir() filepath:/data/user/0/com.example.androidfiletest/files
     context.getObbDir() filepath:/storage/emulated/0/Android/obb/com.example.androidfiletest
    context.getNoBackupFilesDir() filepath:/data/user/0/com.example.androidfiletest/no_backup
    context.getCodeCacheDir() filepath:/data/user/0/com.example.androidfiletest/code_cache
    context.getExternalCacheDir() filepath:/storage/emulated/0/Android/data/com.example.androidfiletest/cache
    context.getExternalFilesDir(null) filepath:/storage/emulated/0/Android/data/com.example.androidfiletest/files
    

    Android 11 相关补充

    在android 11 上,google官方推荐使用context.getExternalFilesDir(null)来存储应用信息到sdcard。
    在此处读写有以下特点:

    1. 不需要权限。
    2. 与私有目录一样,在应用删除之后,该目录下的内容也会被删除。

    在Android 11 的机型上,如果继续使用Environment.getExternalStorageDirectory() 在sdcard根目录操作文件,读写会非常慢。

    笔者个人操作经验:删除200MB的文件需要30s左右

    展开全文
  • Android下如何获取应用所占用的磁盘空间呢? 带着这个疑问我们先看一下应用详细信息里的各项数据都代表什么含义。 如图所示: 应用大小: 值得是apk解压后,所占用的磁盘空间 缓存:指的是:/data/data/package...

    一、应用详情数据含义

    Android下如何获取应用所占用的磁盘空间呢? 带着这个疑问我们先看一下应用详细信息里的各项数据都代表什么含义。
    在这里插入图片描述
    如图所示:

    • 应用大小: 值得是apk解压后,所占用的磁盘空间

    • 缓存:指的是:/data/data/ p a c k a g e N a m e / c a c h e / + / s d c a r d / A n d r o i d / {packageName}/cache/ +/sdcard/Android/ packageName/cache/+/sdcard/Android/{packageName}/cache/ 的占用大小

    • 用户数据:这个数据不同的手机表现不一样,上述截图是google pixel手机的显示, 此处的数据是计算是:/data/data/ p a c k a g e N a m e / + / s d c a r d / A n d r o i d / {packageName}/ + /sdcard/Android/ packageName/+/sdcard/Android/{packageName} - 缓存目录大小

    • 用户数据部分,很多国产手机的计算方式也是不一样的,例如华为手机:数据部分是没有减去缓存目录大小的,只是单纯的/data/data/ p a c k a g e N a m e / + / s d c a r d / A n d r o i d / {packageName}/ + /sdcard/Android/ packageName/+/sdcard/Android/{packageName}之和。

    • 总计: 总计部分,不同手机和厂商有会有一定的差异性,google原生系统显示的是:应用大小+用户数据+缓存;然而有些国产手机显示的是:应用大小+数据-缓存 比如华为手机

    二、获取应用占用磁盘大小代码

    1、8.0以下设备获取方式

    查看Android中PackageManager源码,找到getPackageSizeInfo方法:

    /**
     * Retrieve the size information for a package.
     * Since this may take a little while, the result will
     * be posted back to the given observer.  The calling context
     * should have the {@link android.Manifest.permission#GET_PACKAGE_SIZE} permission.
     *
     * @param packageName The name of the package whose size information is to be retrieved
     * @param observer An observer callback to get notified when the operation
     * is complete.
     * {@link android.content.pm.IPackageStatsObserver#onGetStatsCompleted(PackageStats, boolean)}
     * The observer's callback is invoked with a PackageStats object(containing the
     * code, data and cache sizes of the package) and a boolean value representing
     * the status of the operation. observer may be null to indicate that
     * no callback is desired.
     *
     * @hide
     */
    public abstract void getPackageSizeInfo(String packageName,IPackageStatsObserver observer);
    

    getPackageSizeInfo方法有两个参数,第一个是需要计算的App包名,第二个是一个回调。不过IPackageStatesObserver这个class在API里貌似找不到,找了点儿资料,需要通过Android AIDL的方式来搞。

    (1)、在该包下新建PackageStats.aidl文件,内容如下:

    package android.content.pm;
    parcelable PackageStats;
    

    (2)、在该包下新建IPackageStatsObserver.aidl接口文件,内容如下:

    package android.content.pm;
    
    import android.content.pm.PackageStats;
    /**
     * API for package data change related callbacks from the Package Manager.
     * Some usage scenarios include deletion of cache directory, generate
     * statistics related to code, data, cache usage(TODO)
     * {@hide}
     */
    oneway interface IPackageStatsObserver {
        void onGetStatsCompleted(in PackageStats pStats, boolean succeeded);
    }
    

    (3)、getPackageSizeInfo方法不能通过context.getPackageManager.getPackageSizeInfo的方式来调用,因为它其实是一个invoke受限的方法,所以必须通过反射实现:

    /**
     * 获取Android Native App的缓存大小、数据大小、应用程序大小
     *
     * @param context
     *            Context对象
     * @param pkgName
     *            需要检测的Native App包名
     * @throws NoSuchMethodException
     * @throws InvocationTargetException
     * @throws IllegalAccessException
     */
    public static void getPkgSize(final Context context, String pkgName) throws NoSuchMethodException,
            InvocationTargetException,
            IllegalAccessException {
        // getPackageSizeInfo是PackageManager中的一个private方法,所以需要通过反射的机制来调用
        Method method = PackageManager.class.getMethod("getPackageSizeInfo",
                new Class[] { String.class, IPackageStatsObserver.class });
        // 调用 getPackageSizeInfo 方法,需要两个参数:1、需要检测的应用包名;2、回调
        method.invoke(context.getPackageManager(), 
                pkgName, new IPackageStatsObserver.Stub() {
                    @Override
                    public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException {
                        // 从pStats中提取各个所需数据
                        Log.i(TAG, "缓存大小=" + Formatter.formatFileSize(context, pStats.cacheSize));
                        Log.i(TAG, "数据大小=" + Formatter.formatFileSize(context, pStats.dataSize));
                        Log.i(TAG, "程序大小=" + Formatter.formatFileSize(context, pStats.codeSize));
                    }
                });
        }
    

    (4)、根据PackageManager中getPackageSizeInfo注释中的提示,还需要在AndroidManifest.xml中加入permission:

    <uses-permission android:name="android.permission.GET_PACKAGE_SIZE" />
    

    2、8.0以上设备获取方式

    8.0以上设备提供了,更加简单的API, 但是有一点是需要注意的,apk运行时获取当前自己进程的磁盘占用是不需要权限的,如果想要获取其他进程的占用是需要让用户进入到指定设置界面进行授权的。

    /**
     * API 26以上获取App磁盘空间占用
     */
    @RequiresApi(api = Build.VERSION_CODES.O)
    private static void getAppsizeTop26(Context context, String packageName, CommCallback<AppSpaceInfo> callback) {
        //26以上的获取方法
        //调用前需要检查权限, 查询自己apk的磁盘占用不需要申请权限,查询非自己需要申请权限
        //非自己的包名
        if (!packageName.equals(context.getPackageName()) && !checkPackageUsageStats(context)) {
            //检查权限(查询自己apk的磁盘占用不需要申请权限,查询非自己需要申请权限)
            callback.onFinished(false, null);
            return;
        }
        AppSpaceInfo result = null;
        boolean exception = false;
        try {
            StorageStatsManager storageStatsManager = (StorageStatsManager) context.getSystemService(Context.STORAGE_STATS_SERVICE);
            StorageManager storageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);
            File path = new File(context.getDataDir().getParent(), packageName);
            if (path.exists()) {
                try {
                    UUID uuid = storageManager.getUuidForPath(path);
                    int uid = context.getPackageManager().getApplicationInfo(packageName, PackageManager.GET_META_DATA).uid;
                    StorageStats storageStats = storageStatsManager.queryStatsForUid(uuid, uid);
                    if (storageStats != null) {
                        result = new AppSpaceInfo(storageStats.getAppBytes(), storageStats.getDataBytes(), storageStats. getCacheBytes());
                        result.pacakgeName = packageName;
                    }
                } catch (IOException | PackageManager.NameNotFoundException  e) {
                    e.printStackTrace();
                    exception = true;
                }
            }
        } catch (Throwable e) {
            e.printStackTrace();
            exception = true;
        }
        callback.onFinished(!exception, result);
    }
    
    public static class AppSpaceInfo {
    /**
        * 设置-应用信息里的"应用"占用
        */
       public long apkBytes;
    
       /**
        * 设置-应用信息里的"数据"占用
        */
       public long dataBytes;
    
       /**
        * 设置-应用信息里的"缓存"占用
        */
       public long cacheByte;
    
       public String pacakgeName;
    
    
       AppSpaceInfo(long apkBytes, long dataBytes, long cacheByte){
           this.apkBytes = apkBytes;
           this.dataBytes = dataBytes;
           this.cacheByte = cacheByte;
       }
    }
    
    展开全文
  • 本文实例为大家分享了Android自定义控件打造平行空间引导页的具体代码,供大家参考,具体内容如下 先上图,动图太大传不上来,在项目中有动图 点击查看动图 首先解释下工程的主要部分。 首先谷歌的百分比布局做了...
  • 《Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新》下拉刷新在如今移动开发中应用如此广泛和普遍,以至于谷歌干脆在SDK中给予支持。在android-support-v4包中,谷歌增加了SwipeRefreshLayout,该组件...

    

    《Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新》

    下拉刷新在如今移动开发中应用如此广泛和普遍,以至于谷歌干脆在SDK中给予支持。在android-support-v4包中,谷歌增加了SwipeRefreshLayout,该组件提供基础的下拉刷新表现能力和开放出来供开发者调用的基本接口。现在给出一个简单的代码例子加以说明。

    代码工程简要说明:以一个SwipeRefreshLayout包裹ListView,SwipeRefreshLayout接管ListView的下拉事件,若ListView被用户触发下拉动作后,SwipeRefreshLayout启动下拉刷新的UI表现样式,下拉刷新完毕,在SwipeRefreshLayout提供的接口中回调更新ListView中的数据。

    如图:

    bd8a8051870a47442f17388ab4cf606e.png

    全部代码:

    MainActivity.java,用于测试的主Activity

    package zhangphil.swiperefreshlayout;

    import java.util.ArrayList;

    import android.support.v4.widget.SwipeRefreshLayout;

    import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;

    import android.support.v7.app.ActionBarActivity;

    import android.os.Bundle;

    import android.widget.ArrayAdapter;

    import android.widget.ListView;

    public class MainActivity extends ActionBarActivity {

    private SwipeRefreshLayout swipeRefreshLayout;

    private int count = 0;

    private ArrayList data = new ArrayList();

    private ArrayAdapter adapter;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);

    ListView listView = (ListView) findViewById(R.id.listView);

    // 设置刷新动画的颜色,可以设置1或者更多.

    // 我们暂时使用三个Android系统自带的颜色。

    swipeRefreshLayout.setColorSchemeResources(

    android.R.color.holo_blue_bright,

    android.R.color.holo_orange_light,

    android.R.color.holo_green_light);

    swipeRefreshLayout.setOnRefreshListener(new OnRefreshListener() {

    // SwipeRefreshLayout接管其包裹的ListView下拉事件。

    // 每一次对ListView的下拉动作,将触发SwipeRefreshLayout的onRefresh()。

    @Override

    public void onRefresh() {

    longTimeOperation();

    }

    });

    // 使用Android系统自带的一个简单TextView布局文件android.R.layout.simple_list_item_1显示我们的额数据内容。

    adapter = new ArrayAdapter(this,

    android.R.layout.simple_list_item_1, data);

    listView.setAdapter(adapter);

    }

    // 每一次下拉刷新将触发更新操作动作。

    // 这里将是比较耗时的操作:如网络请求的数据,加载一个大图片。

    // 简单期间,我们假设就是简单的将count数据加1,然后更新显示。

    //

    // 备注:swipeRefreshLayout.setRefreshing(true) 到

    // swipeRefreshLayout.setRefreshing(false)之间的这段代码 ,

    // 在实际的应用开发中一般就是线程化的、耗时的或者后台的操作代码。

    private void longTimeOperation() {

    // true,刷新开始,所以启动刷新的UI样式.

    swipeRefreshLayout.setRefreshing(true);

    // 开始启动刷新...

    // 在这儿放耗时操作的 AsyncTask线程、后台Service等代码。

    // add(0,xxx)每次将更新的数据xxx添加到头部。

    data.add(0, "" + count++);

    adapter.notifyDataSetChanged();

    // 刷新完毕.

    // false,刷新完成,因此停止UI的刷新表现样式。

    swipeRefreshLayout.setRefreshing(false);

    }

    }

    MainActivity需要的布局文件activity_main.xml,里面有SwipeRefreshLayout和ListView的写法。

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

    android:id="@+id/swipeRefreshLayout"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

    android:id="@+id/listView"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    原文:http://blog.csdn.net/zhangphil/article/details/46965377

    展开全文
  • 没事做用自定义view方式写一个星评控件,虽说网上很多这个控件,但是这是自己写的,在这里记录一下。 首先需要自定义属性 <!--属性分别是:单个的宽,高,之间的距离,激活的数量,总数量,激活的drawable,...
  • 谷歌服务框架 apk(Google Services Framework)谷歌 play 服务 apk(Google play Services)谷歌 play 的 apk(Google Play Store)[color=rgba(0, 0, 0, 0.749019607843137)]如果手机没有这三样东西,我是觉得手机是没有...
  • Android—仿QQ空间动态九宫格图片预览(二) 只要用心去做,每一件事情还是有可能成功的,当然成功是没有界限的,只不过是达到自己心里的那个目标 接着上一篇文章进行改善,这一次找到一个可以跑起来的开源控件,...
  • WPS Office for Android 中文版 金山 Office 安卓版WPS Office for Android 中文版 金山 Office 安卓版 WPS Office for Android 特色简介: 1、文档编辑掌上进行,随时随地享受办公乐趣:金山WPS Office移动版支持...
  • android 优化system分区空间小方法

    千次阅读 2021-10-25 19:25:01
    背景 为何需要采用此种方式 ,... 经历各种折腾后,还没有达到预期的效果,最后找到了apk gz压缩编译的方式节省分区空间. 原理 此方案android源码很早就已经支持了,猜想此方案并未被广泛应用的原因,一方面,增加分
  • 谷歌商店从2021.8月份起只支持AAB格式上传文件,Google Play同时要求应用适配Android11,即 targetSdkVersion要求大于等于30。从2021年8月开始发布新应用必须设置targetSdkVersion大于等于30;从2021年11月开始更新...
  • 安卓 android一键分享 新浪微博 腾讯微博,qq空间,qq,人人网
  • android 谷歌定位If your Android phone doesn’t have a lot of storage space, it can be a constant struggle to remove old junk and make room for new pictures, videos, and apps.Google’s Files app has a ...
  • 软件名称:谷歌安装器 软件版本:v1.3.3 软件语言:中文 软件大小:9.82M 测试机型:三星 i9300 【软件介绍】 ...1.修复因system空间不足导致无法安装问题 2.修复部分机型无法登录google play问题
  • 随着Google在许多设备上的品牌形象越来越明显,Google试图调整其设计,以便在受限的空间中描绘其徽标,并在跨平台的用户中保持一致。 Google San的某些用户界面也使用了Product Sans,它的尺寸经过了优化,名为...
  • 安卓工作室项目 使用 Android Studio 进行 android 开发的项目空间
  • 这篇文章中,我们使用到了Share SDK,它是为iOS、Android、WP8的APP提供社会化功能的一个组件,目前支持如QQ、微信、新浪微博、腾讯微博、开心网、人人网、豆瓣、网易微博、搜狐微博、facebook、twitter、google+等...
  • google手机编译android源码刷机

    千次阅读 2021-03-27 21:20:12
    如果是单纯研究Android源码或Android手机系统层的某个功能,以google原生Android手机和源码为研究对象再适合不过了,因为google官方给出了很全面的源码编译/刷机等说明文档。 编译和刷机常使用到的链接记录如下,...
  • 废话太多,Google软件索取方法请直接看文底需要强烈软件的或者备注留下邮箱,我们尽快发给...大家都知道,国内googleplay因为各种各样的原因会被限制,但是很多安卓的用户还是会前赴后继的去找各种辅助软件去用Goog...
  • 动态功能交付(Feature Delivery),是谷歌Google Play Core 库为谷歌商店发布的应用所提供的功能之一。 使用Play Core 库还可以提供以下这些功能: 下载其他语言资源 管理功能模块分发 管理资源包分发 触发应用内...
  • 原标题:安卓原生分屏有了,谷歌说:Android Q要实现分屏应用多开 尽管许多国产厂商的定制系统早已加入了分屏、画中画的支持,但是谷歌直到安卓7.0“牛轧糖”系统才加入原生分屏支持,在安卓8.0“奥利奥”中加入了对...
  • 现在,Android8.0引入的流操作系统更新的功能,将能在手机没空间的情况下继续更新工作。Android8.0引入流系统更新(图片来自baidu)这个功能很像是Android7.0的无缝更新升级版,早前是在安装更新时,你的手机正在使用...
  • google备份和还原Moving from one phone to another can be as traumatic as changing schools or moving to a ... To make the transition less painful, you can use Google One to back up and restore Android....
  • 安卓课程设计实验报告,完整安卓开发设计报告,利用Android 开发一款网上新闻浏览系统,数据来源于网络。
  • 安卓11gms安装器2021最新版是谷歌gms安装器华为专版APP,完美适配华为p40等旗舰机型,一键免root安装华为谷歌框架套件、华为框架等功能,兼容最新安卓10/安卓11机型,华为手机必备哦!安卓11gms安装器2021最新版介绍...
  • Android11 正式发布】谷歌宣布正式推出 Android 11 ,Pixel、OnePlus、小米、OPPO或realme手机的用户现在将在未来几天看到更新推送,其他用户...谷歌安卓 11 有哪些新功能?1、Android11 的主要改变包括,系统界面...
  • uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <!-- 修改或删除您的USB存储设备中的内容 --> <uses-permission android:name="android.permission.W
  • 安卓源码包 Android GPS 开发 地图&导航&定位&指南 45个合集: AMap_Android_API_Demo_V2.0.4(Location_API_V1.0.2).zip Android 4.0下指南针开发源码,可在Nexus 4上完美运行.zip Android GPS 开发client端代码分享....
  • Android谷歌官方的自适应TextView字体大小的解决方案有时候UI限定了TextView宽度或者布局的控件空间尺寸不足,而此时的TextView里面的文本就无法完全正常显示。自适应TextView文本大小字体以适应限定宽度的TextView...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,422
精华内容 29,768
关键字:

安卓google空间