2024年Android最全伪协议在Android开发中的应用(1),2024大厂安卓面试集合

如何做好面试突击,规划学习方向?

面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。

学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。

同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节

image

在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。

image

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

======================================================================

android提供了一种处理Scheme的类:Uri,位置在android.net.Uri。

通过Uri可以操作伪协议,以https://androidwind.com:8080/test/add?uid=100&age=20#myfrag为例:

getScheme()获取scheme:https;

getHost()获取hostname:androidwind.com;

getPort()获取hostname:8080;

getPath()获取path:/test/add;

getQuery()获取query:uid=100&uid=200;

也可以通过getQueryParameter(key)获取指定的值,比如getQueryParameter(uid),值为100;

getFragment()获取fragment:myfrag

URL Scheme应用

======================================================================

配置


URL Scheme的配置有两种方式,一种是直接在AndroidMainfest.xml中配置好,通过Intent跳转;

还有一种是在代码中直接解析URL Scheme,通过获取到的字段,通过代码进行跳转。

我们定义一个伪协议:tiny://androidwind:8080/add

1. AndroidMainfest.xml配置

<data

android:host=“androidwind”

android:path=“/add”

android:port=“8080”

android:scheme=“tiny”

/>

2. 代码解析

String url = “tiny://androidwind:8080/add”;

Uri uri = Uri.parse(url);

String scheme = uri.getScheme();

String host = uri.getHost();

String path = uri.getPath();

//判断path是不是某个业务

if(“add”.equals(path)) {

// 跳转到对应的业务页面;

}

URL Scheme应用场景


1. app应用内页面跳转

String url = “tiny://androidwind:8080/add”;

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

startActivity(intent);

这样就可以打开SchemeActivity这个页面;

2. app应用内页面跳转(通过代码解析)

String url = “tiny://androidwind:8080/add”;

Uri uri = Uri.parse(url);

String scheme = uri.getScheme();

String host = uri.getHost();

String path = uri.getPath();

//判断path是不是某个业务

if (“/add”.equals(path)) {

// 跳转到对应的业务页面;

Toast.makeText(this, “伪协议解析完成”, Toast.LENGTH_SHORT).show();

startActivity(new Intent(this, TestActivity.class));

}

3. 通过app应用内的H5页面跳转到app指定页面

StringBuilder sb = new StringBuilder();

sb.append(“”);

sb.append(“”);

sb.append(“

<a href=”" + url + “”>"

  • “通过app应用内的H5页面跳转到app指定页面”);

sb.append(“”);

sb.append(“”);

wv.loadDataWithBaseURL(null, sb.toString(), “text/html”, “utf-8”, null);

4. 外部app启动本app,并跳转到指定页面

外部app可以通过下面的代码打开另外一个app:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(“tiny://androidwind:8080/add”));

startActivity(intent);

如果出现闪退则说明手机里面没有目标app,应该增加try catch处理。

5. 通过浏览器启动本app。并跳转到指定页面

通过手机浏览器,打开一个网页,然后点击网页上的超链接,打开手机内的app。

比如通过手机访问:

http://htmlpreview.github.io/?https://github.com/ddnosh/android-demo-scheme/blob/master/scheme.html

结语

看到这篇文章的人不知道有多少是和我一样的Android程序员。

35岁,这是我们这个行业普遍的失业高发阶段,这种情况下如果还不提升自己的技能,进阶发展,我想,很可能就是本行业的职业生涯的终点了。

我们要有危机意识,切莫等到一切都成定局时才开始追悔莫及。只要有规划的,有系统地学习,进阶提升自己并不难,给自己多充一点电,你才能走的更远。

千里之行始于足下。这是上小学时,那种一元钱一个的日记本上每一页下面都印刷有的一句话,当时只觉得这句话很短,后来渐渐长大才慢慢明白这句话的真正的含义。

有了学习的想法就赶快行动起来吧,不要被其他的事情牵绊住了前行的脚步。不要等到裁员时才开始担忧,不要等到面试前一晚才开始紧张,不要等到35岁甚至更晚才开始想起来要学习要进阶。

给大家一份系统的Android学习进阶资料,希望这份资料可以给大家提供帮助。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

这份资料可以给大家提供帮助。
[外链图片转存中…(img-EIeYifE9-1715628534857)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值