成都网站建设设计

将想法与焦点和您一起共享

android常用,android常用的文件系统有哪些

Android常见知识点

跳槽无非就是钱少了或不爽了,无论怎么样,记住:

成都创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为霍山企业提供专业的成都网站制作、成都网站设计,霍山网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

不要裸辞!

不要裸辞!

不要裸辞!

为什么呢?

1、裸辞就没有钱拿了,还不如骑驴找马。

2、裸辞之后如果一个月内没有找到工作,那么社保就会断了,除非你自己找渠道交了。

3、裸辞之后真的会很颓废!

当初还在上班的时候就想着,裸辞了,首先花几天时间吧简历完善一下,把知识点恶补一下,然后投简历,面试,妥妥的妥妥。

结果呢?每次裸辞之后都是:

首先躺尸一个星期;

然后用了一个星期才慢吞吞的改完简历;

然后海投,没回复,修改简历;

再次海投,面试,被虐得体无完肤,怀疑人生;

再改简历,再海投,一不小心中了。

当然海投也是有个目标范围的。

如果不是裸辞,那么现在应该还是在公司上班,在完成工作之余,就会逼着自己复习知识点了,起码不会在家堕落。在家不上班就是睡觉、看电影,樯橹灰飞烟灭,所以不要裸辞。

然并卵,我依然裸辞了。请假面试真的很烦。

onPause,假如从ActivityA启动B,如果B是透明的,则不会回调A的onStop方法。

方法一:

方法二:

1、写好动画文件 R.anim.enter 、 R.anim.exit

2、调用 overridePendingTransition 设置动画

引申:如Activity设置为singleInstance,则应该怎么设置跳转动画?

1、 startService 启动方与Service并没有关联,只有当Service调用 stopSelf 或者其它组件调用 stopService 的时候服务才会终止。

2、 bindService 启动方绑定Service,并且可以通过Binder与之交互,当启动方销毁时,也会自动unbindService,当所有启动方都unbindService之后,Service也就自动销毁了。

为什么呢?官方文档是这样写的:

大概意思是 onReceive() 执行完毕之后,它所在的进程就会变成低优先级进程,极易被系统杀死。

分两种情况分析一下:

一、收到广播的时候,应用正在运行:

此时如果没有在Manifest中设置了独立进程,则 onReceive() 就直接在主进程主线程执行,这里很明显不能执行耗时操作。

二、收到广播的时候,应用没有启动:

这时候系统会启动一个进程去执行 onReceive() ,(如果Manifest中没有设置进程名,则进程名为包名),(插一句,所有进程都会创建一个Application实例),当onReceive执行完毕之后,此进程就变成低优先级了,随时有可能被系统杀死,如果你在onReceive里面启动了线程执行耗时任务,那很有可能子线程没执行完毕,进程就被杀死了,进程没了,线程自然就挂了。

那么确实要执行耗时操作呢,怎么办?

方法一:goAsync()

方法二:schedule a JobService from the receiver using the JobScheduler

三种实现方法

1、继承现有的组件,如TextView等,进行拓展。

2、继承ViewGroup,自定义布局。

3、继承View,在onDraw()中描绘。

onMeasure()

onLayout()

onDraw()

其它

attachToRoot 从字面理解就是是否绑定到 root 上面去了。

1、 attachToRoot=true :则返回的view为root的子view;

2、 attachToRoot=false :则返回的view是个单独的view,传入的root只是提供一些参数给view使用而已。

那么这里不传入 attachToRoot 呢?那就看root是否为空了,如果传入root不为空,则默认绑定到root,作为root的子view返回。

也就是所谓的Frame动画。指通过指定每一帧的图片和播放时间,有序的进行播放而形成动画效果。

可以通过插入器 Interpolator 控制动画的变化速度。

也就是所谓补间动画。指通过指定View的初始状态、变化时间、方式,通过一系列的算法去进行图形变换,从而形成动画效果,主要有 AlphaAnimation 、 TranslateAnimation 、 ScaleAnimation 、 RotateAnimation 四种。

注意:只是在视图层实现了动画效果,并没有真正改变View的属性。

属性动画,通过不断的改变View的属性,不断的重绘而形成动画效果。相比于视图动画,View的属性是真正改变了。

注意:Android 3.0(API 11)以上才支持。

最常用的类有 ObjectAnimator

P.S. 我不明白cancel存在的意义。

另外, DialogFragment 是没有cancel的。

ping

内存大致分为三个区:栈区、堆区、方法区。

栈区

堆区

方法区

JAVA不允许手动释放内存,只能通过垃圾回收程序不定期对那些不再被引用的对象进行回收。

那么怎么判断哪些对象需要回收?

1、引用计数法

就是给对象添加一个引用计数器,引用对象时+1,引用失效时-1。但是这种方法解决不了对象相互引用的情况。

2、可达性分析法

通过一系列“GCRoots”对象作为起点进行搜索,当GCRoots和一个对象之间没有可达路径,则认为此对象不可用,但是不可用不一定会成为可回收对象。

编写AIDL文件,定义接口。

编译生成JAVA文件。

定义进程级Service,onBind中返回Interface.Stub()。

onServiceConnected中Interface aidl = Interface.Stub.asInterface(service);

把已修复的class文件打包成dex文件,网络传输到用户手机中,利用类加载器把这些类加载到类队列的前面即可。

【未完待续】

如果公司录用我,不管是三年还是五年,首先我都会先把公司的任务做好,然后不断深入研究Android的相关技术,特别是Android源码,了解Android底层原理,以便更好的优化性能,避免一些不必要的奇葩问题,还有就是研究一些新的框架的原理,学习别人的思维。最后就是学习周边语言,比如后台,前端等等。

Android 常见布局

Android六大基本布局分别是:线性布局LinearLayout、表格布局TableLayout、相对布局RelativeLayout、层布局FrameLayout、绝对布局AbsoluteLayout、网格布局GridLayout。其中,表格布局是线性布局的子类。网格布局是android 4.0后新增的布局。

在手机程序设计中,绝对布局基本上不用,用得相对较多的是线性布局和相对布局。

padding是站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。margin则是站在自己的角度描述问题,规定自己和其他(上下左右)的view之间的距离,如果同一级只有一个view,那么它的效果基本上就和padding一样了。

显示特点:所有子控件按照横向或者竖向依次排列

left(左)、right(右)、top(上)、bottom(下)、center(中心)、

enter_vertical(竖向中心)、center_horizontal(横向中心)

left(左)、right(右)、top(上)、bottom(下)、center(中心)、

enter_vertical(竖向中心)、center_horizontal(横向中心)

子控件的用法:android:layout_weight="1" 多个控件同时使用,可以实现平分的效果

显示特点:和LinearLayout布局相似,所有子控件默认显示在RelativeLayout的左上角

layout_toRightOf 在指定控件的右边

layout_toLeftOf 在指定控件的左边

layout_above 在指定控件的上边

layout_below 在指定控件的下边子控件对齐关系

layout_alignRight 与指定控件右对齐

layout_alignLeft 与指定控件左对齐

layout_alignTop 与指定控件上对齐

layout_centerInParent 与父容器中间对齐 pairunte

layout_centerVertical 与父容器竖向中心对齐

layout_centerHorizontal 与父容器横向中心对齐

layout_alignParentLeft 与父容器左边对齐

layout_alignParentTop 与父容器上边对齐

layout_alignParentRight 与父容器右边对齐

layout_alignParentBottom 与父容器下边对齐

显示特点:所有子控件默认在GridLayout中横向依次排列,当只等每行的列数时,到达指定列数

会自动换行显示。

layout_column 在网格的第几列

layout_row 在网格的第几行

layout_columnSpan 跨列

layout_rowSpan 跨行

layout_gravity 在一个网格中的重心位置

columnCount 每行列总数

显示特点:所有的子控件默认显示在FrameLayout的左上角,会重叠在一起显示。

layout_gravity(设置给子控件,调整控件在容器内的重心)

常用值:

left(左)、 right(右)、

top(上)、 bottom(下)、

center(中心)、 center_vertical(竖向中心)

center_horizontal(横向中心)

表格布局和网格布局类似,但是需要注意的是,表格布局不能跨行,只能跨列

Android 常用adb命令

常用adb 命令

配置mat 环境,因为从 android profile直接获取到的hprof文件格式与mat的格式不兼容,所以需要使用工具转换一下

第 1 行:进程信息

总共(total):754个

运行中(running)状态:1个

休眠(sleeping)状态:753个

停止(stopped)状态:0个

僵尸(zombie)状态:0个

第 2 行:内存信息

5.5G total:物理内存总量

5.4G used:使用中的内存量

165M free:空闲内存量

76M buffers: 缓存的内存量

第 3 行:Swap分区信息

2.5G total:交换区总量

789M used:使用的交换区大小

1.7G free:空闲交换区大小

2.4G cached:缓冲的交换区大小

内存监控时,可以监控swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是内存不够用了。

第 4 行:CPU信息

800%cpu:8核cpu

100%user:用户进程使用CPU占比

3%nice:优先值为负的进程占比

54%sys:内核进程使用CPU占比

641%idle:除IO等待时间以外的其它等待时间占比

0%iow:IO等待时间占比

3%irq:硬中断时间占比

0%sirq:软中断时间占比

第 5 行及以下:各进程的状态监控

PID:进程id

USER:进程所属用户

PR:进程优先级

NI:nice值,负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存总量,VIRT=SWAP+RES

RES:进程使用的、未被换出的物理内存大小,RES=CODE+DATA

SHR:共享内存大小

S:进程状态

%CPU:上次更新到现在的CPU占用时间比

%MEM:使用物理内存占比

TIME+:进程时间的CPU时间总计,单位1/100秒

ARGS:进程名

Android基础之常用五种布局

所有东西依次都放在左上角,会重叠,这个布局比较简单,也只能放一点比较简单的东西。

分为垂直布局( android:orientation="vertical" )和水平布局( android:orientation="horizontal" )。

垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;

水平布局时,只有一行,每一个元素依次向右排列。

用X,Y坐标来指定元素的位置,这种布局方式也比较简单

在屏幕旋转时,往往会出问题,而且多个元素的时候,计算比较麻烦。

可以理解为某一个元素为参照物,来定位的布局方式。

主要属性有:

相对于某一个元素 android:layout_below 、 android:layout_toLeftOf

相对于父元素的地方 android:layout_alignParentLeft 、 android:layout_alignParentRigh ;

每一个 TableLayout 里面有表格行 TableRow , TableRow 里面可以具体定义每一个元素。每一个布局都有自己适合的方式,这五个布局元素可以相互嵌套应用,做出美观的界面。


文章名称:android常用,android常用的文件系统有哪些
文章URL:http://chengdu.cdxwcx.cn/article/dscccpe.html