阿里云面试(android)

1.Android启动过程。如何实现假开机
2.Application和Activity中Context的区别
  第一种中context的生命周期与Application的生命周期相关的,context随着Application的销毁而销毁,伴随application的一生,
  与activity的生命周期无关.第二种中的context跟Activity的生命周期是相关的,但是对一个Application来说,Activity可以销毁几次,那么属于Activity的context就会销毁多次.
  还有就是,在使用context的时候,小心内存泄露,防止内存泄露,注意一下几个方面:


  1. 不要让生命周期长的对象引用activity context,即保证引用activity的对象要与activity本身生命周期是一样的
  2. 对于生命周期长的对象,可以使用application context
  3. 避免非静态的内部类,尽量使用静态类,避免生命周期问题,注意内部类对外部对象引用导致的生命周期变化


3.Activity和Fragment的区别
  1.frament作为activity界面的一部分组成出现。
               2.可以一个activity界面同时出现对个frament,并且一个frament也可以再多个activity中使用
               3.在activity运行中可以动态添加,移除,替换frament
               4.frament可以响应自己的输入事件,并且有自己的生命周期,不过他的生命周期要被宿主activity的生命周期影响。
               
4.android:layout_margin:本元素离上下左右间的距离
android:layout_marginStart:本元素离开始的位置的距离
android:layout_marginEnd:本元素离结束位置的距离


5.Android java有没有memoryleak问题
Activity中new Thread,在Thread中又使用当前的Activity.


6.getView优化
判断contentView是否为空,
使用ViewHolder创建static内部类,
减少显示的数目,分页显示,
每个Item的View深度不要太深


7.bindView和getView的区别
//Makes a new view to hold the data pointed to by cursor.
public abstract View newView(Context context, Cursor cursor, ViewGroup parent);
//Bind an existing view to the data pointed to by cursor
public abstract void bindView(View view, Context context, Cursor cursor);


newView和bindView细化了getView中的功能实现,均可写在getView中代替


8.Object中的函数
hashCode\equals\toString\wait\nitofy\notifyAll\clone


9.C++深拷贝,如何实现深拷贝
会将所有属性值都做一次拷贝。实现深拷贝通过重载=和拷贝构造


10.C++防止被继承
构造private
 
11.Http协议
12.如何防止反射调用Android关键API
方法1.权限保护,声明权限level为signature以上,调用时检测权限,则使用时必须要保证有相同签名才可以使用
13.c怎么调java

你可能感兴趣的:(android,面试,阿里)