Android Studio

性能优化组合拳

末鹿安然 提交于 2020-05-08 19:08:31
一、卡顿优化 启动卡顿优化 现象:启动慢,启动白屏,启动黑屏 1、不要在oncreate中做耗时操作 2、不要在application中做耗时操作 3、布局要浅,避免过度绘制,如果布局实在是复杂,用Constraintlayout 开发者选项中有调试GPU过度渲染工具。 颜色:蓝色<浅绿<浅红<深红 分别代表:绘制一次<绘制两次<绘制三次<绘制四次及以上 4、如果加载的实在是多,就分步加载,放到子线程,加载一部分回调一部分刷新主线程数据 白色主题耗时多久白屏,黑色主题耗时多久黑屏 运行时卡顿优化 1、耗时操作不要放在主线程 2、自定义控件ondraw中不要做耗时操作,1000ms / 60帧 = 16.6666... 如果16ms的时间没来得及绘制就掉帧,表现为卡顿 二、内存优化 传送门: https://blog.csdn.net/zhangzhuo1024/article/details/89599446 三、apk体积优化 1、冗余代码删除。随着项目功能修改,会有很多冗余的废代码,及时删除 2、冗余资源删除。没有用的图片,布局全部删除;androidstudio 文件夹右键->Refactor->Remove Unused Resource. 3、图片优化。传送门: https://blog.csdn.net/zhangzhuo1024/article/details

Android 数据库(SQLite)【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练)】

和自甴很熟 提交于 2020-05-08 15:44:37
目 录 (壹)SQLite数据库简介 (贰)数据库的创建 (叁)数据库的使用 3.1、SQlite的基本操作 3.1.1、添加数据 3.1.2、修改数据 3.1.3、查询数据 3.1.4、删除数据 3.2、SQLite中的事务 3.3、实战演练——绿豆通讯录 实现步骤 and 技术要点 activity_main.xml MyHelper.java MainActivity.java 运行截图 (肆)数据显示控件 ListView控件 常用数据适配器(Adapter) BaseAdapter SimpleAdapter ArrayAdapter 实战演练——Android应用市场 (代码)工程文件 运行截图 两种优化方式 (壹)SQLite 数据库简介 (贰)数据库的创建 (叁)数据库的使用 3.1、SQlite的基本操作 3.1.1、添加数据 3.1.2、修改数据 3.1.3、查询数据 3.1.4、删除数据 3.2、SQLite中的事务 3.3、实战演练 ——绿豆通讯录 实现步骤 and 技术要点 【工程文件】项目源码 : https://gitee.com/lwx001/Directory 可用 “Gitee” 直接 拷贝 到 “Android Studio” 中。 注意:添加数据后,重新启动Android模拟器,数据会保留(数据仍可被查询到)。 activity_main

Flutter尝鲜系列—2、搭建开发环境

走远了吗. 提交于 2020-05-08 09:44:03
flutter sdk安装包   【下载地址】 https://flutter.dev/docs/development/tools/sdk/releases#macos   下载完成后,操作步骤:         cd ~/目标路径     unzip ~/安装包路径 设置&更新环境变量   打开 $HOME/.bash_profile   添加 export PATH = [flutter安装路径]/flutter/bin:$PATH   运行 source $HOME/.bash_profile   验证 echo $PATH   flutter doctor 检查   国内镜像   export PUB_HOSTED_URL=https://pub.flutter-io.cn   export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn Xcode安装 Android Studio安装 | VS Code安装   Flutter插件   Dart 插件 来源: oschina 链接: https://my.oschina.net/u/4290163/blog/4269980

Android绘制优化(二)布局优化

可紊 提交于 2020-05-08 07:48:28
前言 我们知道一个界面的测量和绘制是通过递归来完成的,减少布局的层数就会减少测量和绘制的时间,从而性能就会得到提升。当然这只是布局优化的一方面,那么如何来进行布局的分析和优化呢?本篇文章会给你一个满意的答案。 1.布局优化工具 在讲到如何去布局优化前,我们先来学习两种布局优化的工具。 1.1 Hierarchy Viewer Hierarchy Viewer是Android SDK自带的可视化的调试工具,用来检查布局嵌套和绘制的时间。需要注意的是在在Android的官方文档中提到:出于安全考虑,Hierarchy Viewer只能连接Android开发版手机或是模拟器。 首先我们在Android Studio中选择Tools->Android->Android Device Monitor,在Android Device Monitor中选择Hierarchy Viewer ,如下图所示: 选择Hierarchy Viewer后会进出Hierarchy Viewer窗口,如下图所示。 Hierarchy Viewer中有4个四个子窗口,它们的的作用为: Windows:当前设备所有界面列表。 Tree View:将当前Activity的所有View的层次按照高层到低层从左到右显示出来。 Tree Overview:全局概览,以缩略的形式显示。 Layout View:整体布局图

Android基础——初学者必知的AIDL在应用层上的Binder机制

天大地大妈咪最大 提交于 2020-05-08 02:21:54
初学者必知的AIDL在应用层上的Binder机制 首先得理解几个概念: IPC:Inter-Process Communication,进程间的通信或跨进程通信。简单点理解,一个应用可以存在多个进程,但需要数据交换就必须用IPC;或者是二个应用之间的数据交换。 Binder:Binder是Android的一个类,它实现了IBinder接口。从IPC角度来说,Binder是Android中的一种跨进程通信方式。通过这个Binder对象,客户端就可以获取服务端提供的服务或数据,这里的服务包括普通服务和基于AIDL的服务。 AIDL:Android Interface Definition language,它是一种Android内部进程通信接口的描述语言。 一、AIDL的使用 服务端: 创建一个服务端工程,在工程中点击右键New->AIDL->AIDL File,默认直接点确定,这时会在工程中出现一个aidl文件: 我们打开这个aidl文件,我们创建一个我们需要测试的方法: 由于Android Studio是要手动编译才能生成对应AIDL的java文件, 既然aidl文件是个接口 ,那就必须存在着实现这个接口的类,点击编译,系统自动生成一个java类,该java类的代码就是整个Binder机制的原理所在(会在下面第二步骤介绍原理): 既然是个服务端 ,那么我们就要开始 写服务 了

Android | 带你零代码实现安卓扫码功能

守給你的承諾、 提交于 2020-05-06 11:01:53
小序   这是一篇纯新手教学,本人之前没有任何安卓开发经验(尴尬),本文也不涉及任何代码就可以使用一个扫码demo,华为scankit真是新手的福音…… 背景介绍   最近被导师要求做一个购物收费的app,毕设好难呀~ 网上找了半天全是zxing,但是扫码效果真是有点小垃圾,无奈只能继续寻寻觅觅……突然发现网上有篇讲集成hms的文章,稍微借鉴了一下。由于在下是安卓小白,全篇没有一点代码,只是搬运一下华为网站的codelab,抱着忐忑的心情,竟然可以一键运行…… 前期准备   开发工具用的是android studio   用过android studio的人直接忽略,没用过的可以参考: https://developer.android.com/studio 相关的安装流程可以参考: https://www.cnblogs.com/xiadewang/p/7820377.html。   zxing和华为扫码服务对比   回到我们的主题上—扫码,我在选择扫码库的时候,首先接触到的是google的开源库ZXing,也上手进行了实操,可以说集成过程还是蛮简单的,但是针对我本身的业务场景和需求,识别率上还是不够达标,自动对焦能力也不具备,不能够达到即开即用的要求,所以我就继续进行了调研,就了解到了华为的一个扫码服务,按照网站上的一些指引,20分钟就搞出来一个小demo,然后就真香

我笨,但我不傻

巧了我就是萌 提交于 2020-05-05 20:03:46
威哥说:很多朋友给我留言,在学习的过程中如何坚持下去,关于努力和目标,我想谈谈自己的理解,有不同见解的地方,欢迎留言跟我探讨哈。 if(努力==苦逼) return true OR false 大学生活是惬意的,高三紧张的一年学习,我他妈都累成狗了,天天除了做题考试还是做题考试,老师、家人、亲戚天天在我耳边吹风:要考个好大学,这辈子就轻松了,半信半疑的我,除了努力只能努力了,12年的应试教育已经让我厌烦,没有目标,理想很空。老师天天在我面前谈理想,什么狗屁理想,我不懂,也不想懂,大多数长辈只会把自己的理想强加到别人身上,我喜不喜欢,有没有兴趣,根本不是他们考虑的问题。当时的我就是这么想的。现在想来,这就是经历,有人喝鸡汤,完事吐个槽;有人喝鸡汤,完事鸡冻不已,热血沸腾,第二天依然回到原点;有人喝鸡汤,完事进入沉思......,你说你懂这个道理,其实你不懂,因为心智达不到相同的水平,你是理解不到的,只有少数人会认同过后付出行动,所以也就出现2%的理论之说。由于这几年发了一些免费视频的缘故,接触了很多有目标有想法的大学生,比当年幼稚的我强太多了,他们早早就定下自己的目标,未来想从事的行业,并为此去努力学习,“努力”这个词很奇妙,很多人一听到努力,联想的是“苦逼”、“累成狗”等词,但真正努力过的人才能理解,“努力”与“乐趣”是并存的,没有乐趣的努力是坚持不了多长时间的

Flutter实践篇-真机上运行FlutterDemo

六月ゝ 毕业季﹏ 提交于 2020-05-04 07:09:47
子曰:实践出真知 一、前言 了解了一段时间的Flutter,并粗略浏览了Dart 语言,接下来就是上手代码了。 ##二、环境配置 首先看一看环境配置相关 系统:Win7 64 位 Android Studio: 3.2.1 真机:RedMi Note2 ##三、构建项目 1.启动Android Studio 2.选择由 Start a new Flutter project 开始新建一个Flutter 项目 3.首次运行工具栏中的运行按钮(绿色三角形,快捷键为Shift+F10),项目在 Resolving dependencies... hangs on了。 ##四、处理问题 bing.com 上搜索,找到解决方案 https://github.com/flutter/flutter/issues/11856 ./flutter_project_name/android/gradlew After successful build. Try run the project again. 但是,我这里没有成功运行,将上述方案进行了优化。跟着我一步一步进行来处理 1.直接在Android Studio 下面的Terminal 命令行中运行 flutter run -v 之后,命令长时间停在 hanging on "Resolving dependencies..." 2

20165232 2017-2018-2《Java程序设计》课程总结

我怕爱的太早我们不能终老 提交于 2020-05-04 05:48:33
20165232 2017-2018-2《Java程序设计》课程总结 每周作业链接汇总: 我期望的师生关系 学习基础和c语言基础调查 预备作业3 Linux安装及学习 第一周学习总结 第二周学习总结 第三周学习总结 第四周学习总结 第五周学习总结 第六周学习总结 第七周学习总结 第八周学习总结 第九周学习总结 二、博客的收获和经验 自认为写得最好一篇博客是?为什么? 自认为写得做好的一篇博客是: 实验一 Java开发环境的熟悉。这是第一次实验的博客。因为是第一次做实验,所以比较用心。 作业中阅读量最高的一篇博客是?谈谈经验 阅读量最高的是预备作业二:学习基础和C语言基础调查,这篇博客记录的主要是我的c语言基础和对于技能的看法,同时老师和助教学姐给了许多解答,有评论自然阅读量比较高。 作业中与师生交互最多的一篇博客是?谈谈收获: 作业中与师生交互最多的一篇博客是:课下作业4。博客中有一些给分点我没有注意到,助教学姐和老师给与提醒。与老师沟通交流的过程,不但我们的问题会得到解决,理解会更加充分,同时也有利于老师对我们进行更加有针对的指导。 实验报告链接汇总: 实验一 Java开发环境的熟悉 实验二《Java面向对象程序设计》 实验三 敏捷开发与XP实践 实验四 Android程序设计 实验五 网络编程与安全 代码托管链接 statistic.sh的运行结果: 加点代码