一个Activity有500多个控件,对手机有多大影响

加盾男爵 2020-11-25 09:47:38
一个Activity里面装了个ViewPager,然后总共6个页面,这6个页面总计500+的控件,类似下面这样

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:background="@drawable/ff0819"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="10dp"
android:layout_marginTop="2dp"
android:layout_marginBottom="2dp"
android:textAlignment="viewEnd"
android:text="@string/factory_index:"
android:textSize="@dimen/text_size_14" />
<EditText
android:id="@+id/cellInfoArfcnEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:layout_marginStart="2dp"
android:layout_marginTop="2dp"
android:layout_marginEnd="2dp"
android:layout_marginBottom="2dp"
android:background="@drawable/rect_corner"
android:ellipsize="end"
android:inputType="none"
android:lines="1"
android:textColor="#ff555555"
android:textColorHint="#ff999999"
android:textSize="@dimen/text_size_20" />
</LinearLayout>

以小米9为例,启动这样一个Activity对于手机来说
1.和空的Activity几乎没区别
2.会导致手机启动时验证卡顿(要卡好几秒)

PS:我手机启动这个Activity每次都要点几下才能启动,不知道原因时什么?有些担心控件放多了
...全文
23745 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_1113502097 2021-02-24
  • 打赏
  • 举报
回复
一般APP界面控件多的话,目测是很多item,recycleview的缓存,回收了解下。还有Viewpage+Fragment实现懒加载等也可以了解下。 卡几秒多半是你的代码运行要太多时间了,刷新UI太快等原因。
王能 2021-02-23
  • 打赏
  • 举报
回复
700多路过,依然很流畅


    {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                View decorView = getWindow().getDecorView();
                check(decorView);
                System.out.println(count);
            }
        }, 5000);
    }

    int count = 0;

    private void check(View view) {
        count++;
        if (view instanceof ViewGroup) {
            ViewGroup vg = (ViewGroup) view;
            for (int i = 0; i < vg.getChildCount(); i++) {
                check(vg.getChildAt(i));
            }
        }
    }
王能 2021-02-23
  • 打赏
  • 举报
回复
虽然500个控件很多,但正常使用绝对不会卡,如果卡那肯定是你在某些地方出现了频繁刷新ui的操作
只为搞笑 2020-12-04
  • 打赏
  • 举报
回复
听你这么说,感觉是类似问卷一类的页面。这类页面记住一个原则,只保存表单数据,控件复用。 > 比如你在加载第一个viewpager时,后面的viewpager就不要立即加载出来。 > 第一个viewpager这么多控件,我猜想也是列表滚动类型的。这时候可以用recyclerview来布局,这样布局可以被重用。 > 表单数据需要时刻保存,在recyclerview渲染时反填数据。这样就可以做到只渲染屏幕内的组件了
ink_s 2020-11-25
  • 打赏
  • 举报
回复
500多个。。。。。
开发者_android 2020-11-25
  • 打赏
  • 举报
回复
去了解一下android view、activity缓存、销毁、内存回收机制。
Android核心技术与实例详解 图书简介: 本书以Android应用程序的开发为主题 并结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程 全书分为三篇共18章 第一篇以简单易懂的实例为依托 详细介绍了Android平台的基本控件 高级控件 常用界面布局及菜单对话框等相关知识;第二篇介绍了Android平台的高级知识 包括消息与广播服务 网络数据处理 手机通信功能 桌面组件 多媒体采集 Google服务及3D程序开发等;第三篇则对三个真实案例的开发步骤进行详细介绍 逐步向读者讲解Android手机应用程序的真实开发过程 同时在源代码中还包含了详细的注释 以尽量帮助读者掌握代码中的每一个细节 尽快掌握Android编程 本书的讲述由浅入深 从介绍Android平台的基本组件到带领读者开发大型应用程序 结构清晰 语言简洁 非常适合初学者和进阶开发者阅读参考 本书附赠DVD光盘1张 其中包含了大容量的手把手教学视频 电子教案 PPT 实例源代码等 Android核心技术与实例详解 图书目录: 基础篇 第1章 Android开发起步 1 1 Android平台简介 1 1 1 Android背景介绍 1 1 2 Android平台架构 1 2 Android开发环境的搭建 1 2 1 相关软件的下载与安装 1 2 2 虚拟设备的创建和使用 1 2 3 创建“Hello Android” 1 2 4 Android应用程序的调试 1 3 小结 第2章 Android应用程序的构成 2 1 Android应用程序的解析 2 1 1 目录结构 2 1 2 资源的管理与使用 2 1 3 AndroidManifest xml简介 2 1 4 应用程序的权限 2 2 Android基本组件的介绍 2 2 1 应用程序的生命周期 2 2 2 Activity简介 2 2 3 Service简介 2 2 4 BroadcastReceiver简介 2 2 5 ContentProvider简介 2 2 6 Intent和IntentFilter简介 2 3 小结 第3章 Android布局管理器 3 1 控件类概述 3 1 1 View类简介 3 1 2 ViewGroup类简介 3 2 线性布局 3 2 1 LinearLayout类简介 3 2 2 线性布局案例 3 3 表格布局 3 3 1 TableLayout类简介 3 3 2 表格布局案例 3 4 相对布局 3 4 1 RelativeLayout类简介 3 4 2 相对布局案例 3 5 帧布局 3 5 1 FrameLayout类简介 3 5 2 帧布局案例 3 6 绝对布局 3 6 1 AbsoluteLayout类简介 3 6 2 绝对布局案例 3 7 小结 第4章 Android常用基本控件 4 1 文本控件的介绍 4 1 1 TextView类简介 4 1 2 EditText类简介 4 1 3 文本框使用案例 4 2 按钮控件 4 2 1 Button类简介 4 2 2 ImageButton类简介 4 2 3 9Patch图片简介 4 2 3 9Patch图片使用案例 4 3 状态开关按钮 4 3 1 ToggleButton类简介 4 3 2 开关按钮的使用 4 4 单选按钮与复选按钮 4 4 1 CheckBox和RadioButton类简介 4 4 2 单选按钮和复选按钮使用案例 4 5 图片控件 4 5 1 ImageView类简介 4 5 2 图片查看器 4 6 时钟控件 4 6 1 AnalogClock和DigitalClock类简介 4 6 2 时钟控件使用案例 4 7 日期与时间选择控件 4 7 1 DatePicker类简介 4 7 2 TimePicker类简介 4 7 3 日期时间控件使用案例 4 8 动画播放技术 4 8 1 帧动画简介 4 8 2 帧动画使用案例 4 8 3 补间动画简介 4 8 4 补间动画使用案例 4 9 小结 第5章 Android常用高级控件 第6章 菜单与对话框 高 级 篇 第7章 Android事件处理模型 第8章 游戏与3D应用程序开发 第9章 消息广播与服务 第10章 网络与数据处理 第11章 手机通信功能开发 第12章 手机特有Feature开发 第13章 桌面组件与多媒体数据采集 第14章 传感器应用的开发 第15章 Google服务 第16章 Android游戏开发实践 快乐数独 案例篇 第17章 Android地图搜索应用 美食天下 第18章 Android社交分享平台 口袋微博">Android核心技术与实例详解 图书简介: 本书以Android应用程序的开发为主题 并结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程 全书分为三篇共18章 第一篇以简单易懂的实例为依托 详细 [更多]

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧