最后
**要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
for (Method m : client.getDeclaredMethods()) {
//获取指定Annotation对象
ActionListener listener = m.getAnnotation(ActionListener.class);
if (listener != null) {
try {
Field f = client.getDeclaredField(listener.source());
f.setAccessible(true);
//控件对象
Object focusView = f.get(client);
//addListenr函数添加监听,当click事件发生时,调用 onBtnClick() 函数
addListenr(focusView, client, m);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
private static void addListenr(final Object focusView, final Object client, final Method m) throws Exception {
InvocationHandler handler = new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
//场景类调用 onBtnClick() 方法
return m.invoke(client);
}
};
Object onClickListenr = Proxy.newProxyInstance(null, new Class[]{View.OnClickListener.class}, handler);
Method setOnClickListenerMethod = focusView.getClass().getMethod(“setOnClickListener”, View.OnClickListener.class);
setOnClickListenerMethod.invoke(focusView, onClickListenr);
}
}
插图:
3.注解应用场景类
第三步:注解应用场景类中,只需要调用处理器中的processAnnotations方法,通过反射完成click事件的绑定,同时为click事件指定source控件,添加事件处理函数onBtnClick。这样一个简单的Android注解应用就完成了。
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
public class MainActivity extends Activity {
private Button test_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
test_btn = (Button) findViewById(R.id.test_btn);
ActionListenerInstaller.processAnnotations(this);
}
@ActionListener(source = “test_btn”)
public void onBtnClick() {
android.util.Log.d(“czh”,“CLICK 事件发生了”);
}
}
插图:
运行结果插图:
环境配置
使用Android注解前需要导入相关的包:
compile ‘com.android.support:support-annotations:latest.integration’
注:如果我们已经引入了appcompat则没有必要再次引用support-annotations,因为appcompat默认包含了对其引用。
注解类型
Android注解给我们提供了三种主要和其他注释供我们使用:
-
IntDef和StringDef注解;
-
资源类型注解;
-
Null注解;
-
其他实用注解
注解使用注意事项
在开发自定义注解时,需要注意以下几点:
-
1.注解的实效范围
-
2.注解适用的程序元素种类
-
3.注解里的方法和字段只能用public 或abstract
-
4.注解里的字段必须初始化
作者:黄晓东
原文链接
总结
首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。
另外一部分原因在于资料也还没有看完,一面时凭借那份资料考前突击恶补个几天居然也能轻松应对(在这里还是要感谢那份资料,真的牛),于是自我感觉良好,资料就没有怎么深究下去了。
之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。
下一步还是要查漏补缺,进行针对性复习。
最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!希望大家不要犯和我一样的错误呀!!!一定要看完!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
6457069)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!