Android开发需求功能一览表
按照目前我接触到的功能,大概划分下
模块化
1.独立出硬件相关,提供硬件服务
2.界面和业务逻辑 使用H5(flutter cordova)
flutter也是纯粹独立业务逻辑而已,跟硬件相关还得IOS和Android提供插件支持,所以一套代码适用两个平台说的也仅仅是业务逻辑,不涉及到硬件层面,一个公司涉及的硬件层面得有多少,从节约人力成本来说是值得推荐
RN是用同一个代码语言去写两套代码
1.框架 数据库,网络,缓存模式,H5交互(cordova)
2.带有主题并控件化,而且例如输入框这种 统一处理 有清空功能的
3.第三方服务 okhttp/XUTILS,七牛,环信,友盟分享,统计,百度定位,热更新等
4.基础功能 例如引导,设置(关于,升级等)
5.业务功能 (首页,注册,登录,修改密码,重置密码)
架构现在流行组件化,参考
http://blog.csdn.net/guiying712/article/details/55213884
https://github.com/mzule/ActivityRouter 做为跳转
http://www.jianshu.com/p/c696acb74bd2
大的业务考虑插件化
内存优化
https://www.zhihu.com/question/30138734
细节实现考虑MVP,MVVM,MVC
framework 在线看代码 http://androidxref.com/
看到另外一个层面的划分结构:http://www.jianshu.com/p/42d45998117f
目前发现两种架构方式
1.普通架构 以Activity为底,我主要用了两个基础activity,一个登陆前,一个是登陆后,登陆前不需要校验直接调用后台接口,登陆后需要校验后才可以使用接口,校验指后台安全性校验,封装类似,主要封装了网络判断,加载动画,隐藏键盘,禁止根据系统设置改变字体大小,动态申请权限等
2.同一个activity,以fragment为底的基础架构,每一个都是fragment,fragment会比activity轻量一些,但是也更容易出现很多坑
http://www.jianshu.com/p/38f7994faa6b
混合开发分为三种:
1.简单,纯粹展示一些静态页面,webview,加Js桥,自己封装通过js传递string,图片base64,文件不怎么传
2.稍微麻烦点,类似cordova,封装好了一些基础,传递文件二进制,String等,有完善的插件模板还有UI模板,只需要自定义一些特殊,比如自定义了七牛上传特殊插件等
3.完全不一样,使用同一种语言来写不同平台的reactNative,类似JS语言来控制原生界面显示和逻辑,基本上原生关系不太大了,学习成本高
组件化封装一个 Android业务组件化之URL Scheme使用 参考:http://www.cnblogs.com/whoislcj/p/5825333.html 可以标准化参数和跳转
VR 其实就是平铺的openGl的球型图片,当然视频是怎么做到,还没太清楚,按道理应该是类似的,球型播放
可以利用谷歌的VR播放器。https://github.com/linglongxin24/VRDevelopVideo
AR Unity3D显示3D图形在屏幕上 http://www.arvrschool.com/read.php?tid=325&fid=21
UI:
1.引导界面
2.注册界面
3.登录页面
4.主界面(微信式下分页,QQ式侧滑分页)
5.设置界面
6.关于界面
7.升级检查更新 有升级标志位,强制升级,提示升级,静默安装
8.意见反馈
9.其他(看需求)
a.activity 生命周期 栈模式
b.server bind模式,声明周期 前台服务
c.broadcastreceiver 静态和动态注册
d.Content Provider 对外暴露提供数据库接口(http://www.cnblogs.com/chenglong/articles/1892029.html http://www.2cto.com/kf/201404/296974.html)
e.application
10.控件自写
a.集成(已有控件集成在一起)
b.自写(根据控件手动画一个控件,没有已有控件支持)
c.继承(在已有控件基础上自己添加新功能以适合独特APP使用)
11.动画效果
12.3D展示
其他功能:
13.JNI NDK C类库调用
14.代码混淆 加壳编译等 加密
15.网络交互
a.SSL()和普通HTTP请求
b.支持断点上传下载
c.网络状态判断(WIFI,移动,断网)
d.网络传输(文字,文件)
(1)文字传输 (XML,JSON)
(2)文件传输(传输前压缩,文件流直传)
e.代理
f.线程池管理
g.多线程交互 同步和异步
h.HTTP与局域网内SOCKET
16.数据存储
a.SQLITE (可以使用第三方框架greenDAO 或ActiviteAndroid)
b.文件存储
c.sharepreference
d.网络存储
17.媒体播放(图片,音乐和视频)
18.图片处理
a,图片变形压缩转换
b.异步下载
c.缓存CACHE
19.工具包
a.常量
b.LOG分级控制记录上传等(http://bugly.qq.com/androidfast) ANR CRASH 其他类型LOG
日志分为3种 Crash日志 用户业务操作日志(后台处理) 用户行为日志
c.本地保存
20.地图功能(百度SDK http://lbsyun.baidu.com/sdk/download)
21.推送功能(百度SDK http://push.baidu.com/ http://developer.baidu.com/platform/catalog/navigation-c/node/n301 也可以使用其他第三方,或者自己写)
22.用户统计
23.硬件设备
a.蓝牙
b.传感器(重力,加速度,方向,光线,GPRS等)
c.NFC
d.摄像头(二维码,人脸识别,卡号识别,拍照)
e.录音
f.wifi
g.GPRS
24.搜索(应用内搜索,网络搜索,语音搜索)
25.即时通讯(环信 http://www.easemob.com/downloads)
26.分享和第三方账号登录(sharesdk http://wiki.sharesdk.cn/ http://www.cnblogs.com/smyhvae/p/4585340.html)
27.支付集成(微信,支付宝,网银)
28.APP对外的接口(AIDI,还有其他自定义广播等)
29.辅助功能服务(例如抢红包辅助功能http://blog.csdn.net/jwzhangjie/article/details/47205299 )
30.hybird网页混合开发模式
最普通一种修是webview加载H5页面,然后回调Android或IOS原生接口(http://www.tuicool.com/articles/m6RVFfA)
当然还有其他的框架,有些针对于纯前端开发者的
31.自动化编译 Android studio 针对gralde (http://blog.csdn.net/voiceofnet/article/details/45197883) Ecplise针对ant(http://blog.csdn.net/webwalker/article/details/24796347)
32,pdf开源组件 vuAndroid 有些格式PDF不支持,例子:http://download.csdn.net/detail/z157794218/9517512
支持比较好的mupdf http://download.csdn.net/detail/z157794218/9518361
33.使用Android6.0以后权限需要检查后申请,参考 http://www.cnblogs.com/cr330326/p/5181283.html
别人讲基础和进阶
http://blog.csdn.net/liuhe688/article/details/9494411
第三方开源代码:
http://blog.csdn.net/shulianghan/article/details/18046021
http://blog.csdn.net/zhaihaohao1/article/category/3162599
http://blog.csdn.net/oyangyujun/article/details/43340893
http://www.open-open.com/lib/view/open1436262653692.html
https://github.com/Trinea/android-open-project
替换主题 https://github.com/burgessjp/ThemeSkinning(封装的) https://github.com/fengjundev/Android-Skin-Loader
按钮在线制作图片 http://angrytools.com/android/button/
34.字体大小 不跟随系统字体改变 http://blog.csdn.net/zhuqiang1002/article/details/38756127
自定义设置字体大小 参考 http://blog.csdn.net/u011730649/article/details/42872923 其他方面
字体适配可能需要自己定义主题来做会更好些 http://www.cnblogs.com/likeandroid/p/4501758.html
35.阴影添加 https://github.com/Hitomis/CrazyShadow
36.开始代码编写简化第三方库文件 事件消息传递eventbus http://blog.csdn.net/harvic880925/article/details/40660137
Retrofit注解 http://www.jianshu.com/p/308f3c54abdd
rxjava http://gank.io/post/560e15be2dca930e00da1083
图片拍照选择器:
https://github.com/jeasonlzy/ImagePicker
https://github.com/easonline/AndroidImagePicker
https://github.com/pengjianbo/GalleryFinal
glide 图片缓存 https://github.com/bumptech/glide
Robust 热更新 http://tech.meituan.com/android_robust.html
Tinker热更新 http://www.tinkerpatch.com/
工具类 https://github.com/Blankj/AndroidUtilCode
http://blog.csdn.net/dj0379/article/details/38356773 XUtils 支持下载大文件,断点续传
好用吸色器http://www.getmarkman.com/#/download-modal
这只是我自己划分以及知识点,如果有不足,期望大家补充说明
ScrollView和recyclerView嵌套,有个简单方法。
ScrollView改成NestedScrollView,recyclerView.setNestedScrollingEnabled(false);加上这两句问题就解决了
scrolliview一直滑到最底部 scrollto失效
scrollView.post(new Runnable() {@Overridepublic void run() {scrollView.fullScroll(ScrollView.FOCUS_UP);}});
toast 在乐视pro3上手机无法显示
http://blog.csdn.net/qq_25867141/article/details/52807705
记录一个工具 ImageOptim 专门用来优化图片大小,减小APP大小
一个有意思的移动端数据问题
http://blog.csdn.net/ceko_wu/article/details/45244295 CursorAdapter优化排序和显示问题
如果有NDK支持,其实也使用C层直接寻址排序和寻找
AndroidStuido的插件
https://www.jianshu.com/p/d76b60a3883d
https://blog.csdn.net/zheng_weichao/article/details/72961791
gradle多渠道打包
https://www.jianshu.com/p/4677efee7214
Android开发需求功能一览表相关推荐
- Android开发常用功能 https://www.2cto.com/kf/201611/561847.html
Android开发常用功能 2016-11-03 09:43:58 来源:EvanJames的专栏 收藏 我要投稿 1.定时器的实现 (1)采用Handler的postDelay ...
- 解决:android 开发 WIFI 功能 密码输入正确时监听的问题
问题描述: 在一个 android 项目中 需要 开发 类似于 系统 wifi 连接的功能,选择可用 wifi 后,输入正确的密码后,WifiManager.SUPPLICANT_STATE_CHAN ...
- Android开发常用功能
1.定时器的实现 (1)采用Handler的postDelayed(Runnable, long)方法 <strong>Handler handler = new Handler(); R ...
- android开发 书签功能,android studio的喜欢和书签功能
如果你是一个安卓开发者,你可能已经发现了一些隐藏在Android Studio里面的非常棒的功能.我也不是例外,而昨天我也在纠结(意思是花了些时间去理解)于一些让开发变的更轻松的新功能.这些功能就是书 ...
- android开发板功能,嵌入式开发-迅为4418开发板Android4.4.4实现ble功能
①.迅为4418开发板Android4.4.4实现ble功能: 在4418/android/device/nexell/drone2/device.mk中添加: frameworks/native/d ...
- android开发板功能,Android中NFC模块PN532开发板应用/原理图/PCB等全部资料
PN532是NXP最近推出的一款NFC芯片,支持读卡器模式和卡模式(需要卡芯片Smart MX),支持TypeA丶TypeB丶TypeC三个标准.该NFC模块PN532开发板特点: @ 内部带一个MC ...
- android开发收藏功能实现,Android使用Realm数据库如何实现App中的收藏功能
Android使用Realm数据库如何实现App中的收藏功能 发布时间:2021-05-07 11:20:34 来源:亿速云 阅读:63 作者:小新 这篇文章主要介绍了Android使用Realm数据 ...
- 基于Android开发通讯录功能
从Android手机获取通讯录信息,这个技术很早之前就已经出现了. 网上的各种教程也很多,最常见的就是传入uri,使用游标来获取信息. 文件:url80.ctfile.com/f/25127180-7 ...
- Android开发收音机功能,基于Android系统的FM收音机功能的设计与实现
摘要: 随着移动互联网时代的到来,智能移动终端产业也迎来了繁荣期.各手机厂商争相推出自己的智能手机和平板电脑.其中安卓系统由于其源码的开放性以及不错的用户体验,而得到了各大手机厂商以及手机应用开发人员 ...
最新文章
- KNN算法(K最近邻算法)详解
- RedHat7.4最小化安装yum源不可用问题解决
- apache修改最大连接并用ab网站压力测试
- 基于KVM虚拟化搭建lamp
- 使用简介EntityFramework6.0
- 模板:二维线段树(线段树套线段树)
- 在护卫神上部署javaWeb项目,已经测试通过
- 基于uniapp开发的适用于微信小程序,头条小程序
- [转] 谈谈JS中的函数节流
- Facebook开源了两个无监督翻译模型,只用单语就能训练双语
- C# Using 用法
- 计算机组成原理—存储系统大纲
- 在主函数中输入10个等长的字符串。用另一函数对他们排序
- 陈国君Java程序设计基础笔记和习题
- 手动安装高可用k8s集群(二进制)v1.23.4版本
- Liang-GaRy啃linux书想吐(五)
- 数学与计算机学院英文翻译,数学与计算机,mathematics and computer science,音标,读音,翻译,英文例句,英语词典...
- B站Up主-山地人-这位老哥2019年的前端自学计划进展如何?——讲一个B站Up主自学前端85天的故事...
- Eslint代码规范
- 基于qiankun搭建ng-alain15微前端项目示例实践