* |-- blocs (bloc相关) * |-- common (常用类,例如常量Constant) * |-- data (网络数据层) * |-- db (数据库) * |-- event (事件类) * |-- models (实体类) * |-- resources (资源文件,string,colors,dimens,styles) * |-- ui (界面相关page,dialog,widgets) * |-- utils (工具类)
data网络数据层
- |–data
- |-- api (url字段)
- |-- net (单例DioUtil)
- |-- protocol (请求与返回实体类)
- |-- repository (接口请求&解析)
api
class WanAndroidApi {
/// 首页banner http://www.wanandroid.com/banner/json
static const String BANNER = “banner”;
static const String USER_REGISTER = “user/register”; //注册
static const String USER_LOGIN = “user/login”; //登录
static const String USER_LOGOUT = “user/logout”; //退出
// 拼接url
static String getPath({String path: ‘’, int page, String resType: ‘json’}) {
StringBuffer sb = new StringBuffer(path);
if (page != null) {
sb.write(‘/KaTeX parse error: Expected 'EOF', got '}' at position 9: page'); }̲ if (resType !=…resType’);
}
return sb.toString();
}
}
请求与返回实体类 protocol
class LoginReq {
String username;
String password;
LoginReq(this.username, this.password);
-
LoginReq.fromJson(Map<String, dynamic> json)
-
username = json[‘username’],
password = json[‘password’];
Map<String, dynamic> toJson() => {
‘username’: username,
‘password’: password,
};
@override
String toString() {
StringBuffer sb = new StringBuffer(‘{’);
sb.write("“username”:“
u
s
e
r
n
a
m
e
"
¨
)
;
s
b
.
w
r
i
t
e
(
"
,
p
¨
a
s
s
w
o
r
d
:
¨
username\""); sb.write(",\"password\":
username"¨);sb.write(",p¨assword:¨password”);
sb.write(‘}’);
return sb.toString();
}
}
接口请求&解析 repository
class WanRepository {
Future<List> getBanner() async {
BaseResp baseResp = await DioUtil().request(
Method.get, WanAndroidApi.getPath(path: WanAndroidApi.BANNER));
List bannerList;
if (baseResp.code != Constant.STATUS_SUCCESS) {
return new Future.error(baseResp.msg);
}
if (baseResp.data != null) {
bannerList = baseResp.data.map((value) {
return BannerModel.fromJson(value);
}).toList();
}
return bannerList;
}
}
资源文件 resources
- |–resources
- |-- colors.dart
- |-- dimens.dart
- |-- strings.dart
- |-- styles.dart
colors.dart
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
最后
其实要轻松掌握很简单,要点就两个:
- 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
- 多练。 (视频优势是互动感强,容易集中注意力)
你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
阿里P7Android高级教程
下面资料部分截图,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。
附送高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、近期面试跳槽、自身职业规划迷茫的朋友们。
Android核心高级技术PDF资料,BAT大厂面试真题解析;
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**