首先,Java基本没问题是不是太自信了。Java的集合框架,多线程并发,NIO/AIO,JVM相关比如GC,内存模型等等搞清楚了没有;学一门语言不是仅仅学会调用一些简单的API。
算法用什么实现没有任何关系,用C能写出来,Java也是分分钟。
针对你的打算:
1. 数据库没有那么重要,可能在Android里面对应的就是ContentProvider,但是用的不频繁,对于应届生了解即可。
2. 脚本语言有精力学习比较好,属于锦上添花;鉴于你大四了,时间不多,还是一门心思Android吧。
3. 设计模式也没那么重要,懂些简单常用的,比如单例,观察者,委托,代理等即可;不要陷入无法自拔。
4. 英文很重要!!百度的搜索结果和google的能同日而语吗,最前沿的技术都是英文写的,可以不会写不会说,但是必须看得懂。
然后说说Android: 完成App当然可以,但是Android开发远远不止完成一些界面那么简单。如果你能在面试的时候说出一些系统的原理,我相信一定会惊艳。
1. Thread/Hander/Looper机制
2. Android系统View的绘制流程
3. View的事件传递机制;了解以上两点,能给面试官讲清楚作为一个应届生就很不错了;很多工作了的都不完全知道;更深入的,
4. Activity的启动流程,ActivityManagerService,PackageManagerService等如何工作的
5. 结合4,尝试了解一些Android的IPC机制,如果你能对Binder讲个头头是道,Special Offer等着你。
6. DexClassLoader机制,延伸到插件框架,基本算是前沿技术之一,如果你能走到这一步,那么惊为天人。
一年时间不多,以上除了第一点,每一个搞清楚都需要相当的精力;特别是Binder于许多其他的知识相关联;不要一口吃成一个胖子,精力也不要分散,做好一点即可。比如,主攻View,搞清其中的原理,写出酷炫的动画,还不愁没人要?