学习分享
在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
2021最新上万页的大厂面试真题
七大模块学习资料:如NDK模块开发、Android框架体系架构…
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
这份体系学习笔记,适应人群:
**第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。
**第二,**开发几年,不知道如何进阶更进一步,比较迷茫。
第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!
由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
①,如果你是Eclipse用户,你想用到邮件的发送来处理异常信息,那你得需要将上面的4个jar包添加到你的项目中,具体步骤不会的可百度。
②,如果你是Android studio用户,你需要在build.gradle(Project:xxx)下的repository中添加如下代码段
repository {
jcenter() // or mavenCentral()
}
在build.gradle(Module:xxx) 中的dependencies添加如下依赖
compile 'com.githang:android-crash:1.0'
后面的3个是可选的,如果用邮件的方式发送的话,需要添加jar包,和添加相应的依赖
其实上述的添加依赖是可以自动完成的,当你把jar包导入后,然后邮件你的jar包,会出现add to library,你添加后,会在依赖中发现已经帮你自动添加了。
2,属性配置
自定义一个类,让其继承于Application,并在AndroidManifest.xml中的application节点中使用name属性,将类名添加进去,这样当程序一启动就会先执行继承自application类里面的配置,最后要别忘了添加权限,一个是网络权限,一个是往sd卡写的权限
public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
initHttpReporter();
}
/**
* 使用EMAIL发送日志
*/
private void initEmailReporter() {
CrashEmailReporter reporter = new CrashEmailReporter(this);
reporter.setReceiver("你的接收邮箱");
reporter.setSender("xxxx@163.com");
reporter.setSendPassword("xxxxxxxx");//说到这个密码,你可以设置一个客户端授权码,它是登录第三方客户端的专用密码,和主登录密码不冲突
reporter.setSMTPHost("smtp.163.com");//这里使用的是163发送邮件的服务,所以主机名是163的,有需要修改的,也可以更改对应的主机名
reporter.setPort("465");//端口号,可选25端口号,具体的看是否使用ssl安全协议
AndroidCrash.getInstance().setCrashReporter(reporter).init(this);
}
/**
* 使用HTTP发送日志
*/
private void initHttpReporter() {
CrashHttpReporter reporter = new CrashHttpReporter(this) {
/**
* 重写此方法,可以弹出自定义的崩溃提示对话框,而不使用系统的崩溃处理。
* @param thread
* @param ex
*/
@Override
public void closeApp(Thread thread, Throwable ex) {
// final Activity activity = AppManager.currentActivity();
// Toast.makeText(activity, "发生异常,正在退出", Toast.LENGTH_SHORT).show();
// 自定义弹出对话框
new AlertDialog.Builder(getApplicationContext()).
setMessage("程序发生异常,现在退出").
setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// AppManager.AppExit(activity);
}
}).create().show();
Log.d("MyApplication", "thead:" + Thread.currentThread().getName());
}
# 总结
本文讲解了我对Android开发现状的一些看法,也许有些人会觉得我的观点不对,但我认为没有绝对的对与错,一切交给时间去证明吧!愿与各位坚守的同胞们互相学习,共同进步!
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**