阿里Android开发规范:安全与其他

SS928评估板开发实战:从环境搭建到外设调试完整流程 嵌入式Linux开发中,评估板是验证硬件与软件方案的关键环节。开发者常需面对交叉编译工具链配置、SDK目录结构理解、系统镜像编译与烧录等一系列基础问题,而设备树、内核启动参数和外设驱动调试更是决定项目进度的核心技能。本文从开发机环境准备入手,系统梳理U-Boot、内核与根文件系统的编译方法,并深入讲解网络启动、分区烧录以及GPIO、I2C、SPI、UART、看门狗等常见外设的验证思路。针对视频应用场景,还重点剖析了MIPI摄像头接入与ISP链路调试的要点,为处理高清视频输入提供可复用的工程路径。以SS928 阅读详情

以下内容摘自 阿里巴巴Android开发手册

我们的目标是:

  • 防患未然,提升质量意识,降低故障率和维护成本;
  • 标准统一,提升协作效率;
  • 追求卓越的工匠精神,打磨精品代码。
  • 【强制】必须遵守,违反本约定或将会引起严重的后果;
  • 【推荐】尽量遵守,长期遵守有助于系统稳定性和合作效率的提升;
  • 【参考】充分理解,技术意识的引导,是个人学习、团队沟通、项目合作的方向。

阿里Android开发规范:资源文件命名与使用规范
阿里Android开发规范:四大基本组件
阿里Android开发规范:UI 与布局
阿里Android开发规范:进程、线程与消息通信
阿里Android开发规范:文件与数据库
阿里Android开发规范:Bitmap、Drawable 与动画
阿里Android开发规范:安全与其他

1、【强制】使用 PendingIntent 时,禁止使用空 intent,同时禁止使用隐式 Intent
说明:

  1. 使用 PendingIntent 时,使用了空 Intent,会导致恶意用户劫持修改 Intent 的内容。禁止使用一个空 Intent 去构造 PendingIntent,构造 PendingIntent 的 Intent一定要设置 ComponentName 或者 action。
  2. PendingIntent 可以让其他 APP 中的代码像是运行自己 APP 中。PendingIntent的intent接收方在使用该intent时与发送方有相同的权限。在使用PendingIntent时,PendingIntent 中包装的 intent 如果是隐式的 Intent,容易遭到劫持,导致信息泄露。

正例:

Intent intent = new Intent(this, SomeActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
try {
    pendingIntent.send();
} catch (PendingIntent.CanceledException e) {
    e.printStackTrace();
}

反例 1:

Bundle addAccountOptions = new Bundle();
mPendingIntent = PendingTntent.getBroadcast(this, 0, new Intent, 0);
addAccountOptions.putParcelable(KEY_CALLER_IDENTITY, mPendingIntent);
addAccountOptions.putBoolean(EXTRA_HAS_MULTIPLE_USERS,
Utils.hasMultipleUsers(this));
AccountManager.get(this).addAccount(accountType,
    null,
    null,
    addAccountOptions,
    null,
    mCallback,
    null);

反例 2:
mPendingIntent 是通过 new Intent()构造原始 Intent 的,所以为“双无”Intent,这个PendingIntent最终被通过AccountManager.addAccount 方法传递给了恶意APP接口。

Intent intent = new Intent("com.test.test.pushservice.action.METHOD");
intent.addFlags(32);
intent.putExtra("app",msg);
PendingIntent.getBroadcast(this, 0, intent, 0));

如上代码PendingIntent.getBroadcast,PendingItent中包含的Intent为隐式intent,因此当 PendingIntent 触发执行时,发送的 intent 很可能被嗅探或者劫持,导致 intent 内容泄漏。
扩展参考:
1) https://developer.android.com/reference/android/app/PendingIntent.html
2) https://wiki.sei.cmu.edu/confluence/display/android/DRD21-J.+Always+pass+explicit+intents+to+a+PendingIntent
3)

Android 开发规范(完结版),Android多线程实现方式及并发与同步 名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如 HTML、URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。 类 描述 例如 Activity 类 Activity 为后缀标识 欢迎页面类 WelcomeActivity Adapter 类 Adapter 为后缀标识 新闻详情适配器 NewsDetailAdapter 解析类 Parser 为后缀标识 首页解析类 HomePosterParser 工具方法类 Utils 或 Manager 为 阅读详情

相关推荐

成功混入Alibaba内部偷师Android规范文档

前言 一份合格的代码不应只满足于实现功能, 更应该遵循良好的规范. 遵循良好的代码规范有利于: 提升程序稳定性, 减少代码隐患, 降低故障率; 增强可扩展性, 大幅提高维护效率; 统一标准, 提升多人协作效率; 方便新人快速上手, 在项目组人员发生变动时保证项目进度; 这里梳理一下Android开发过程中需要注意的一些地方, 包括多个部分, 另外根据约束力强弱分为两类: 强制:如...

weixin_44339238的博客 226

阿里Android开发规范:文件与数据库

以下内容摘自 阿里巴巴Android开发手册 我们的目标是: 防患未然,提升质量意识,降低故障率和维护成本; 标准统一,提升协作效率; 追求卓越的工匠精神,打磨精品代码。 【强制】必须遵守,违反本约定或将会引起严重的后果; 【推荐】尽量遵守,长期遵守有助于系统稳定性和合作效率的提升; 【参考】充分理解,技术意识的引导,是个人学习、团队沟通、项目合作的方向。 阿里Android开发规范:资...

leeyhCoding的博客 1655

阿里Android开发规范:资源文件命名与使用规范

以下内容摘自 阿里巴巴Android开发手册 我们的目标是: 防患未然,提升质量意识,降低故障率和维护成本; 标准统一,提升协作效率; 追求卓越的工匠精神,打磨精品代码。 【强制】必须遵守,违反本约定或将会引起严重的后果; 【推荐】尽量遵守,长期遵守有助于系统稳定性和合作效率的提升; 【参考】充分理解,技术意识的引导,是个人学习、团队沟通、项目合作的方向。 阿里Android开发规范:资...

leeyhCoding的博客 4421

阿里Android开发规范:进程、线程与消息通信

以下内容摘自 阿里巴巴Android开发手册 我们的目标是: 防患未然,提升质量意识,降低故障率和维护成本; 标准统一,提升协作效率; 追求卓越的工匠精神,打磨精品代码。 【强制】必须遵守,违反本约定或将会引起严重的后果; 【推荐】尽量遵守,长期遵守有助于系统稳定性和合作效率的提升; 【参考】充分理解,技术意识的引导,是个人学习、团队沟通、项目合作的方向。 阿里Android开发规范:资...

leeyhCoding的博客 1463

flutter项目结构,android开发规范阿里

一共十个专题,包括了Android进阶所有学习资料,Android进阶视频,Flutter,java基础,kotlin,NDK模块,计算机网络,数据结构与算法,微信小程序,面试题解析,framework源码!一共十个专题,包括了Android进阶所有学习资料,Android进阶视频,Flutter,java基础,kotlin,NDK模块,计算机网络,数据结构与算法,微信小程序,面试题解析,framework源码!(解* 答:比如:RN,weex,H5,小程序,WPA等。)比较省电的方式是什么?

2301_82242484的博客 926

Android开发规范:API接口安全设计规范,2024年最新互联网行业面试

我们的app一般会在公司的后台申请一个appKey和appSecret,这两个是一一对应的。appKey我们会作为一个参数写在URL中,发送至服务器。appSecret则用于参与生成sign的计算。sign算法需要足够复杂,最好有一套自己的签名算法,不是外界公开的;一般采用安全散列算法实现,比如SHA1。sign也要作为一个参数添加到URL中,和appKey一并发送至服务器。如:xxx.html?appKey=xx?sign=xx?key1=xx?key2=xx?key3=xx。

2401_84023579的博客 1111

Android开发规范:APP打包规范

设置systemProp.app_version_code 为版本升级号(每次发布新版本需要+1);systemProp.app_version_num+systemProp.app_version_name = 应用版本号如:systemProp.app_version_num=101 systemProp.app_version_name=1.0.1应用版本号为:1.0.1.101其它业务相关参数的配置;默认product连接正式服、uat连接测试服;

2401_84121827的博客 462

Android开发规范,性能优化,kotlin单例类

LayoutView:lv RelativeView:rv TextView:tv ImageView:iv ImageButton:im Button:btn 5.activity中的view变量命名 命名模式为:逻辑名称+view缩写 建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view 6.strings.xml中的id命名 命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/

m0_66264134的博客 974

androidsdk开发TV,android开发规范

主要问 View 的绘制流程,自定义View的步骤。有时会涉及到细节;比如 PhoneWindow 实例是在哪个类哪个方法中实例化的?Selector 是怎么实现的?View 动画是怎么实现的?为什么移动后点击事件还在原来的位置?

2301_82101470的博客 1150

Android 开发规范(完结版)

单个的大写字母,后面可以跟一个数字(如:E, T, X, T2)。 以类命名方式(参考3.2 类名),后面加个大写的 T(如:RequestT, FooBarT)。 更多还可参考:[阿里巴巴 Java 开发手册](() 4 代码样式规范 4.1 使用标准大括号样式 左大括号不单独占一行,与其前面的代码位于同一行: class MyClass { int func() { if (something) { // … } else if (somethingElse) { // … } else { // .

m0_69789996的博客 670

Android开发规范:Git版本管理规范

feature分支作为完成某个特定功能的分支,是从dev分支拉的分支;feature分支根据项目实际情况,分为以下两种:(1)此类分支的特点是开发周期短、功能特定新强;feature分支开发完毕后,合入develop分支;develop分支测试完毕,合入master主分支后,删除feature分支;(2)此类分支的特点是开发周期长,一般与develop分支处于并行关系;feature分支功能与develop分支同步,但是自身有特定的功能;feature分支一般情况下不删除;

code8889的博客 1918

Android开发规范:文档管理规范

简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。

2401_84122760的博客 582

Android开发规范:APP版本发布(全量发布、灰度发布)(1)

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。上面分享的百度、腾讯、网易、字节跳动、阿里等公司2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。【Android思维脑图(技能树)】知识不体系?

m0_75279794的博客 1224

Android开发规范:APP版本发布(全量发布、灰度发布

!最后放上一个大概的Android学习方向及思路(详细的内容太多了~),提供给大家:对于程序员来说,要学习的知识内容、技术有太多太多,这里就先放上一部分,其他的内容有机会在后面的文章向大家呈现出来,不过我自己所有的学习资料都整理成了一个文档,一直在不断学习,希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!Android架构师之路很漫长,一起共勉吧!

679

阿里巴巴Android开发规范2022最新版

阿里Android开发规范,适用于android开发。

[LVGL] 刷新率优化

实验硬件:STM32F407ZGT6;2.4寸TFT-LCD模块(ILI9341驱动芯片、XTP2046触摸芯片)本文目标:lvgl的刷新率优化,解决拉帘子问题注意:本文在LVGL显示触摸代码移植完成的基础上进行,第一次使用lvgl可根据前文一步步移植,点击下方传送门查看相关文章传送门:STM32F4驱动ILI9341的TFT-LCD触摸屏(HAL库)(一)STM32F4驱动ILI9341的TFT-LCD触摸屏(HAL库)(二)[LVGL] 显示代码移植 基于STM32F4。

2301_77117901的博客 2784

低成本实现webhook接收端[python]

Webook本质上也是API,只不过是反向调用,即前端不主动发送请求,完全由后端推送。简单来说,Webhook是一个接受HTTP POST或是GET,PUT,DELETE的URL,一个实现了Webhook的API提供商就是在当事件发生的时候会向配置的URL发送信息,与请求-响应式不同,使用Webhook可以实时接收到变化。Ps:Webhook可能会发出大量的请求,确保接受的URL不被泄露或者应用能及时处理这些请求。

锡城小凯的博客 1万+

FIddler+Proxifer 实现PC客户端抓包详细教程

FIddler+Proxifer 实现PC客户端抓包详细教程

森明帮大于黑虎帮的博客 1万+

知识图谱中的 Ontology(本体论)

1980年,本体论(Ontology)哲学概念“本体”被引入到人工智能领域用来刻画知识。本体概念模型、明确、形式化、共享。本体是实体存在形式的描述,往往表示为一组概念定义和概念之间的层级关系,本体框架形式树状结构,通常被用来为知识图谱定义schema。如人、公司、车等都可以在具体场景下称为本体。Ontology是(特定领域)信息组织的一种形式,是领域知识规范的抽象和描述,是表达、共享、重用知识的方法。Ontology。

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 2033

博途PLC PID仿真LSim_PT1库算法(一阶系统差分方程推导全过程)

博途PLC的PID仿真可以参看下面这篇博客,这篇文章我们主要论坛仿真库LSim的算法由来。如何利用博途PLC PID_Compact 进行PID仿真(一阶系统)_RXXW_Dor的博客-优快云博客博途PLC PID控制器 PID_Compact FB如何使用可以参看下面这篇文章,这里不再赘述。

RXXW_Dor的博客 2859

Unreal5从入门到精通之初学者碰到解决不了的问题怎么办?

在学习Unreal的过程中,你曾陷入困境了吗?对于我来说,这种情况发生得比我愿意承认的要多得多。幸运的是,除了一般地在网上搜索之外,还有很多地方可以获得虚幻引擎的帮助。

TxNet 980

基于STM32L4XX、HAL库的MAX13487EESA RS485总线收发器驱动程序设计

MAX13487EESA是一款3.3V供电的RS-485/RS-422收发器,由Maxim Integrated生产。PA4 (控制引脚) ---> /RE, DE (连接在一起)具有±15kV ESD保护的驱动器输出和接收器输入。半双工RS-485/RS-422通信。工业温度范围:-40°C至+85°C。工作电压范围:3.0V至3.6V。数据速率高达250kbps。

zhusl6688的博客 689

如何创建 SAP ABAP CDS View 的 Association

所以本文我们虽然学习了如何创建 SAP CDS View 的 association,知道了 association 是用来在 CDS View 里将两张数据库表关联起来,但根本不知道怎么使用这个 association. 而且从 association 的写法来看,似乎和本教程之前介绍 inner join,left join 这些数据库表的连接操作没什么区别,都是根据两张表的 carrid 和 connid 字段相同进行的连接。只看到了我们在 CDS View 源代码实现里,放出来的四个字段。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 904

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 阿里Android开发规范:Bitmap、Drawable 与动画
下一篇: android studio3.1 快捷键大全
「已注销」
博客等级 码龄9年 13粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值