0. 前言 我们都知道新建一个Android项目自动生成的Xml布局文件的根节点默认是RelativeLayout,这不是IDE默认设置,而是由android-sdk\tools\templates\activities\EmptyActivity\root\res\layout\activity_simple.xml.ftl这个文件事先就定好了的,在我们的理解里貌似LinearLayout的性能是要比RelativeLayout更优的,那SDK为什么会默认给开发者新建一个RelativeLay…
前言 我们平时在使用软件的过程中是不是遇到过这样的情况:"这个 app 怎么还没下载完!"."太卡了吧!"."图片怎么还没加载出来!"."怎么刚进去就卡了!"."这怎么点了一下就退出了!"等等,这些情况其实包含了我们性能优化的主要内容. 性能的优化是一个老生常谈的点,也是一个比较重要的点.特别是诸多大厂在这方面尤为看重,毕竟就算0.1%的瑕疵,影响的讲师百万级,千万级的用户体验! 如果你已经有 2 - 3…
1.LinearLayout:设置背景时即设置android:background时,假如LayoutLayout设置了android:layout_width="wrap_content".那么你的布局会和你的图片大小一样大.并不会出现图片失真严重的问题 2.RelativeLayout:设置背景时,即设置了android:background时,假如RelativeLayout设置了android:layout_width="wrap_content".那么你的…
1.简介 LinearLayout为安卓三大常用布局中的线性布局.其中,线性布局又分为水平线性布局和垂直线性布局.视图如下所示:…
RelativeLayout 相对布局 true或false属性 Layout_centerHorizontal   当控件位于父控件的横向中间位置 Layout_centerVertical   当控件位于父控件的纵向中间位置 Layout_centerInParent     当控件位于父控件的中央位置 Layout_alignParentBotton 当控件低端与父控件低端对齐 Layout_alignParentLeft 当控件左侧与父控件左侧对齐 Layout_alignParentR…
0. 前言 上一篇我们分析了为什么LinearLayout会比RelativeLayout性能更高,意义在于分析了这两种布局的实现源码,算是对一个小结论的证明过程,但是对布局性能的优化效果,对这两种布局的选择远不如减少布局层级.避免过分绘制.按需加载等效果明显.所以本篇将着重总结Android布局性能优化的各种技巧.本文原创,转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52923827.   1.   <include/> &…
之前一直是用windows搞android开发,但windows这个性能也真是让人醉了,终于一狠心,砸锅卖铁买了Mac.然后就开始在Mac上搭建android开发环境, 其实也不麻烦,关键是找准下载地址就行了,今天特意记录下来搭建过程,以备其他小伙伴参考和自己以后使用. 一.首先,准备好工具,在这里贴一下本人搜到的下载地址: 1.Java SE 6:https://support.apple.com/kb/DL1572?locale=zh_CN 这里需注意:过高版本可能会导致eclipse打不开…
作者:贺小令 随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要求远远高于PC的桌面应用程序.以上理由,足以需要开发人员更加专心去实现和优化你的代码了.选择合适的算法和数据结构永远是开发人员最先应该考虑的事情.同时,我们应该时刻牢记,写出高效代码的两条基本的原则:(1)不要做不必要的事:(2)不要分配不必要的内存. 我从去年开始接触Android开发,以下结合自己的一点项目经验,同时参考了Google的优…
转自(http://www.starming.com/index.php?action=plugin&v=wave&tpl=union&ac=viewgrouppost&gid=74&tid=20713&pg=1贺小令 ) 随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要 求远远高于PC的桌面应用程序.以上理由,足以需要开发人员更加专心去实现和优化你的代码了.选择合…
在 Android开发中,性能优化策略十分重要本文主要讲解性能优化中的布局优化,希望你们会喜欢.目录 示意图 1. 影响的性能 布局性能的好坏 主要影响 :Android应用中的页面显示速度 2. 如何影响性能 布局影响Android性能的实质:页面的测量 & 绘制时间 1个页面通过递归 完成测量 & 绘制过程 = measure.layout 过程3. 优化思路 优化方向:布局性能.布局层级.布局复用性 和 测量 & 绘制时间具体如下示意图 针对 页面布局的性能.层级.测量绘制时…
刚做Android开发时,只管完成任务,将需求完成,以能完成一款界面酷炫的app为自豪.然而,随着代码量的增加,越来越意识到,一款成功的移动端产品,光有酷炫的外衣还不够,还需要在各方面都优秀. 试想,拿着一款app,第一眼看去,页面静态效果完美,但试着去操作,点击按钮半天不见反馈,滑动时伴着卡顿效果,甚至时不时弹出个“应用程序无响应”,用户有何感想:又或者,装上app后,原本充一次电可以用一天,现在半天就没电了,偶尔放在口袋里手机感觉会发烫.其实这些,都是一些看得见或看不见的性能问题,作为一名合…
前言 啦啦啦~博主又推出了一个新的系列啦~ 之前的Android开发系列主要以完成实验的过程为主,经常会综合许多知识来写,所以难免会有知识点的交杂,给人一种混乱的感觉. 所以博主推出“重点难点”系列,将博主在完成实验的过程中遇到的重.难点或者出现问题较多的地方写出来与大家分享,使大家能更好的学习Android开发的相关知识(我知道我是好人,大家不用夸奖我啦~手动滑稽). 之前的实验部分也会继续更新啦~ 接下来进入正题~自然先从布局开始,线性布局大家都比较好理解,此次博主带来的是RelativeL…
前言 啦啦啦~博主又来骚扰大家啦~大家是不是感觉上次的Android开发博文有点长呢~主要是因为博主也是小白,在做实验的过程中查询了很多很多概念,努力去理解每一个知识点,才完成了最终的实验.还有就是随着我们的实验的进行,代码量也会越来越多,所以在接下来的博文中会对源码进行取舍,而不会把全部的实验代码都放到博文中~ 大家在看博文时如果有什么意见或者感觉博主有说错.说的不清楚的地方可以在评论中留言,博主会第一时间回复大家~我们一起学习,共同进步~ 好啦~进入正题~ 本次Android开发,我们主要探…
ListView是Android开发中最常用的组件之一.本文将重点说明如何正确使用ListView,以及使用过程中可能遇到的问题. ListView开发模块 图片缓存 可能遇到的问题 一.ListView开发模块 从项目实践的角度来看,ListView适合“自底向上”的开发模式,即从每个条目的显示组件,到对其进行控制的数据结构,最后通过Activity等进行使用.主要包括以下模块: 1.首先是item组件,即用于每项布局输出的xml文件.Android SDK中有simple_list_item…
安卓开发应用首先要讲究良好的用户体验,如果一款软件卡顿现象严重,不流畅,经常崩溃,那么将给用户带来极不良好的体验,从而损失用户. 在实际开发和学习中,我总结了一下关于安卓性能的优化,供大家参考交流. 应用程序的性能问题体现在很多方面, 比如第一次启动速度慢,或者进入某一界面速度慢:动画执行过程不流畅,或者动画执行卡顿时间长:ListView列表滑动过程中卡顿,不流畅:应用程序自定义的某特定界面执行速度慢:响应某一用户事件时长时间无响应(ANR):操作数据库时,执行大量数据的增删改查操作,执行速度…
一直想做开发语言性能对比,刚好有时间都做了给大家参考一下, 编译类:C++和Java表现还不错 脚本类:TCC脚本动态运行C语言,性能比其他脚本快好多... 想玩TCC的同学下载测试包,TCC目录下修改script.c,运行TccTest1.exe即可看到修改效果,无需编译!!! 链接:http://pan.baidu.com/s/1kUVGGwJ 密码:mgpx C++(VS2017) java8.2 Python2.7-3.5.2 aardio(LUA) TCC…
多数Android开发者都知道在Android中可以使用HashMap来映射一种对应关系,在java开发中HashMap也算是一种很重要的数据存储结构.然后很多人在Android开发中多数都会用HashMap来存储这种映射形式的数据. 其实,Android提供了一种更加适合Android开发的数据结构——SparseArray.初看之下,好像是一种数组,其实不然.数组的index是连续的.而SparseArray可以不连续,所以导致SparseArray就具有HashMap的一些特性,但是比Ha…
第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的setDefaultUncaughtExceptionHandler方法!defaultUncaughtHandler是Thread类的静态成员变量,所以如果我们将自定义的UncaughtExceptionHandler设置给Thread的话,那么当前进程内的所有线程都能使用这个UncaughtExcep…
先明确几个概念的区别: padding margin:都是边距的含义,关键问题得明白是什么相对什么的边距padding:是控件的内容相对控件的边缘的边距. margin  :是控件边缘相对父空间的边距 android:gravity是对该view 内容的限定. 比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个. android:layout_gravity 是用来设置该view中的子view相对于父view的位置. 比如一个button…
先明确几个概念的区别: padding margin都是边距的含义,关键问题得明白是什么相对什么的边距. padding是控件的内容相对控件的边缘的边距. margin是控件边缘相对父控件的边距. android:gravity 属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个. android:layout_gravity是用来设置该view中的子view相对于父view的位置.比如一个button 在…
先明确几个概念的区别: padding margin都是边距的含义,关键问题得明白是什么相对什么的边距. padding是控件的内容相对控件的边缘的边距. margin是控件边缘相对父控件的边距. android:gravity 属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个. android:layout_gravity是用来设置该view中的子view相对于父view的位置.比如一个button 在…
接上篇<android开发艺术探索>读书笔记(十四)--JNI和NDK编程 No1: 如果<include>制定了这个id属性,同时被包含的布局文件的根元素也制定了id属性,那么以<include>指定的id属性为准 No2: 绘制优化 1)onDraw中不要创建新的局部对象 2)onDraw方法中不要做耗时的任务 No3: 内存泄露优化 场景一:静态变量导致的内存泄露: 如果静态变量持有了一个Activity,会导致Activity无法及时释放. 解决办法:1使用Ap…
对比 WinCE Android 行业场景 扫描分拣.车载.工控 扫描分拣.车载定位 开发语言 C++.C# Java/.NET(Smobiler) 开发环境 Visual Studio Android Studio/ Visual Studio(Smobiler) 硬件 平板.手持机 平板.手持机 行业方案 WinCE从1995年诞生至今,已有20多年的发展历史,行业成熟方案覆盖范围广,从车载.工控.手持机都有涉及,且方案成熟. 近些年,Android以后来居上的态势,逐渐渗透至各行业领域,硬…
https://i.cnblogs.com/EditPosts.aspx?opt=1 重点知识 和线性布局(LinearLayout)一样,RelaiveLayout相对布局也是我们用的比较多的一个布局之一.相对,顾名思义是有参照的,就是以某个兄弟组件,或者父容器来决定的(兄弟组件是在一个同一个布局里面的组件,如果是布局里一个组件参照另一个布局里的组件会出错).合理地利用好LinearLayout的weight权重属性和RelativeLayout相 对布局,可以解决屏幕分辨率不同的自适应问题.…
<LinearLayout 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" android:background=…
如果AS完全还没摸懂的,建议先看下Android开发工具全面转向Android Studio(2)——AS project/module的CRUD. 注:以下以Windows平台为标准,AS以目前最新稳定版1.4.1为准. 1.其实AS project/module的目录结构很简单,我浓缩成2张图给总结了,先看图,再看下面的文字,因为还有些细节图上体现不出来(我这个图上的项目来源于我之前的Eclipse项目,并且有lib项目库相互依赖)…
1.简介 relativeLayout为相对布局,它是新版本安卓的默认布局方式.相对布局可以设置一个部件相对于其他部件所在的位置,包括上下左右等等. 2.构建…
             相对布局RelativeLayout是Android布局中一个比較经常使用的控件,使用该控件能够布局出适合各种屏幕分辨率的布局,RelativeLayout採用相对位置进行控件属性设置. 能够设置控件与父控件的位置,控件与控件之间的位置. 1. 控件与父容器位置属性 android:layout_alignParentLeft="true"   子控件相对于父容器靠左边                                  android:lay…
Python获取文件名的方法性能对比 前言:平常在python中从文件夹中获取文件名的简单方法   os.system('ll /data/')   但是当文件夹中含有巨量文件时,这种方式完全是行不通的: 在/dd目录中生成了近6百万个文件,接下来看看不同方法之间的性能对比  快速生成文件的shell脚本 for i in $(seq 1 1000000);do echo text >>$i.txt;done  1.系统命令 ls -l # 系统命令 ls -l import time imp…
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解Android 卷Ⅰ,Ⅱ,Ⅲ>中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!! 前言 Hello,大家好,有没有想我,这一个月没有更新文章,为什么呢,大声的告诉你,,我在...(准备面试 ps:南京).至于怎么准备的,以及在面试中遇到的问题还有面试结果之类的,我们下面呢会挑一些与L…