Android进阶

Android USB通信入门篇

Android USB通信入门篇

Android USB开发模式 Android中USB有两种开发模式,一种是host模式,另一种是accessory模式,下面介绍一下这两种模式。 (1)Host模式:如图,此模式中,Android设备充当主机,给USB外部设备供电,常见的Host模式有:鼠标、键盘等。 (2)Accessory模式

Joe.Ye Joe.Ye 2023-03-29
0 0 0
Android组件化开发+自定义路由框架

Android组件化开发+自定义路由框架

技术背景 独立开发,集成打包 让App内各个功能模块能够独立开发单元测试,也可以所有模块集成打包,统一测试 独立开发 更改build.gradle的配置,使得每个功能模块都成为application,可以独立打包成apk,单独运行。单个模块,独立测试。 集成打包 更改build.gradle的配置

Joe.Ye Joe.Ye 2023-03-29
0 0 0
Android Hook无清单启动Activity的应用

Android Hook无清单启动Activity的应用

我们已经实现了启动没有在menifest中注册的Activity的效果,然而,这样做到底在生产开发中有什么样的应用呢? 答案:插件化 插件化是一个宽泛的概念,只要是实现了宿主app上插件功能的灵活拔插,实现了宿主app业务和插件功能的完全解耦,就可以称之为插件化 原理是用宿主中真实Activit

Joe.Ye Joe.Ye 2023-03-29
0 0 0
Android Hook实现无清单启动Activity

Android Hook实现无清单启动Activity

正常开发中,所有Activity都要在AndroidManifest.xml中进行注册,才可以正常跳转。通过hook,可以绕过系统对activity注册的检测,即使不注册,也可以正常跳转。 整体思路 我们已经实现Activity启动流程的hook,最终采用的方案,是Hook AMS,实现全局star

Joe.Ye Joe.Ye 2023-03-29
0 0 0
Android Hook-Activity的启动流程

Android Hook-Activity的启动流程

两种启动Activity的方式源码追踪 源码基于 SDK 28 ~ Android 9.0 方式1:使用Activity自带的startActivity 代码示例 private void startActivityByActivity() { Intent i = new Intent(

Joe.Ye Joe.Ye 2023-03-29
0 0 0
Android插件化启动Activity

Android插件化启动Activity

支付宝APP本身更像是一个"空壳",里面可以搭载很多小功能,这些小功能都是以"插件"的形式存在,支持小功能的灵活配置,用户不想要某个功能,可以不显示出来。插件化开发是当下大型APP必备的一项技术。 插件化开发的核心难点 根据引子中所说,支付宝中各种各样的功能

Joe.Ye Joe.Ye 2023-03-29
0 0 0
Android Hook技术实现一键换肤

Android Hook技术实现一键换肤

产品要求app里面的图表要实现白天黑夜模式的切换,以满足不同光线下都能保证足够的图表清晰度。怎么办?可能解决的办法很多,可以给图表view增加一个toggle方法,参数String,day/night,然后切换之后postInvalidate刷新重绘。OK,可行,但是这种方式切换白天黑夜,只是单个V

Joe.Ye Joe.Ye 2023-03-29
0 0 0
Android Muitldex热更新修复方案原理

Android Muitldex热更新修复方案原理

目前最热门的热更新由两种:一种是腾讯Tinker为代表的,需重启app的热更新;一种是美团app为代表的Instant Run,无需重启app 背景描述 产品已经上线,此时由于引起bug的代码只有一行,机智的程序员用最快的方式修复了这个bug,也只是改了一行代码。那么,产品已经在线上,怎么办? 我

Joe.Ye Joe.Ye 2023-03-29
0 0 0
Android Hook入门

Android Hook入门

hook的定义 hook,钩子。勾住系统的程序逻辑。 在某段SDK源码逻辑执行的过程中,通过代码手段拦截执行该逻辑,加入自己的代码逻辑。 实用价值 hook是中级开发通往高级开发的必经之路。 如果把谷歌比喻成 安卓的造物主,那么安卓SDK源码里面就包含了万事万物的本源。 中级开发者,只在利用万事万

Joe.Ye Joe.Ye 2023-03-29
0 0 0
Android热修复主流方案

Android热修复主流方案

热修复方案按照是否必须重启分为两类:重启生效 / 即时生效。按照实现方式可以分为3类:Java层的实现 / Native层的实现 / Java Native混合实现 阿里AndFix 方案(已弃用) AndFix 是 无需重启 的 Native层 的实现。但是,AndFix目前已经3年多没维护更新

Joe.Ye Joe.Ye 2023-03-29
0 0 0
Android AOP开发之AspectJ的使用

Android AOP开发之AspectJ的使用

AOP介绍 OOP(Object Oriented Programming ,面向对象编程),把功能封装在一个类中,使用的时候创建该类的对象,调用对象的方法或者使用其属性即可,OOP具有可重用性、灵活性和扩展性。 尽管OOP具有很多好处,但是如果在软件开发领域只使用OOP,在某些情况下也会使程序变

Joe.Ye Joe.Ye 2023-03-28
0 0 0
Android全局Context无侵入式获取

Android全局Context无侵入式获取

背景描述 当我们在使用第三方库,或者自己封装库,如果需要需要用到Context时,一般做法就是将初始化方法暴露给调用方,让调用方在初始化类库时,传入Context。 publi class App extends Application { /** * 是否是Debug环境

Joe.Ye Joe.Ye 2023-03-28
0 0 0
Android 安全之 Activity 劫持防护

Android 安全之 Activity 劫持防护

什么是 Activity 劫持 Android 为了提高用户的用户体验,对于不同的应用程序之间的切换,基本上是无缝。举一个例子,用户打开安卓手机上的某一应用例如支付宝,进入到登陆页面,这时恶意软件检测到用户的这一动作,立即弹出一个与支付宝界面相同的 Activity,覆盖掉了合法的 Activity

Joe.Ye Joe.Ye 2023-03-28
0 0 0
Android渗透测试注意事项

Android渗透测试注意事项

源码安全检测工具:Fortify Fortify Source Code Analysis Suite是目前在全球使用最为广泛的软件源代码安全扫描,分析和软件安全风险管理软件。 注意事项 APP回退后台提示,建议在APP退出后台时给用户风险提示,以防用户敏感信息被盗 Activity防止劫持 H

Joe.Ye Joe.Ye 2023-03-28
0 0 0
Android ViewBinding入门

Android ViewBinding入门

前言 随着Android Studio 3.6的正式发布,Gradle插件升级到3.6.0,ButterKnife报错,日志如下: Attempt to use @BindView for an already bound ID 0 on 'mTvText'. 回退Gradle

Joe.Ye Joe.Ye 2023-03-25
0 0 0
1 2 3 4 5