自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 Android 升级签名算法从SHA1withRSA 升级到SHA256withRSA

想到要修改这个问题 是因为收到下面整改通知 要求我们更新签名文件的签名算法,看到这个问题都懵了呀 虽然打包天天用签名文件 但是从来没关注过他呀开发者自查: 不要使用已经过时或不安全的弱算法,确保签名证书使用了更强的签名算法, 如 SHA-2(其中包括 SHA-256 和 SHA-512)。然后就想着查看下签名信息:首先 查看签名信息有三种方法,第一种使用JDK的keytool -printcert -jarfile apk。

2023-12-14 16:39:23 497

原创 Mac下Android studo 配置svn

Android studio 配置svn1:新建一个空项目2:按照图示,选择subversion3:点击+号 ,把svn地址填进去就好了4:后面直接选择一个目录 checkout就行了

2020-07-07 17:21:00 432

原创 Android stuio在MainActivity中运行java的main方法

1:还是按照之前Android的项目配置2:在local.properties中配置自己的sdk(我的是mac)#Thu May 28 16:49:10 CST 2020sdk.dir=/Users/menglong/Library/Android/sdk3:在 ideal/grad le.xml的<GradleProjectSettings>标签中配置<option name="delegatedBuild" value="false" />这行如:&l

2020-05-29 15:41:19 1240

原创 Android高级-组件化-路由管理器完成版实践

前面我们使用APT_JavaPoet完成了组件化路由框架搭建即:1:通过添加自定义注解ARouter,通过对应的注解处理器动态扫描含有ARouter注解的Activity2:通过JavaPoet生成对应的Group路由和Path路由3:通过动态添加注解Parameter,通过对应的注解处理器动态臊面含有Parameter注解的属性以及对应的Activity,完成传参这节主要解决...

2020-04-14 13:25:40 338

转载 Java-设计模式之- 装饰模式VS建造者模式

一 比较:相同点: 建造者模式是所有的部件在内部组装完毕之后,然后显示出来, 装饰模式似乎与其有着共同之处,那就是你不能在人前一件一件 地 穿衣服,你肯定会在某个别人看不见的地方把衣服穿好,才出来见人的。不同点: 建造者模式要求建造的过程必须是稳定的。 而装饰模式的建造过程不是稳定的,衣服你可以先穿裤子,再穿褂子,或者干脆不穿褂子,穿个短袖等...

2020-04-09 14:42:43 452

转载 设计模式系列

创建型模式:设计模式之工厂模式(Factory Pattern)设计模式之抽象工厂模式(Abstract Factory Pattern)设计模式之建造者模式(Builder Pattern)设计模式之原型模式(Prototype Pattern)设计模式之单例模式(Singleton Pattern)结构型模式:设计模式之适配器模式(Adapter Pattern)设计模式之桥接模式...

2020-04-09 13:08:03 98

原创 Android架构师-组件化-APT生成路由动态参数类文件 8

上篇文章中,我们已经将路由数据创建完毕,在app的application中也将所有activity动态添加到集合汇总,但是问题是没有动态扫描到,这篇文章我们来解决这个问题以及动态参数如何传递?1:动态参数传递:常规参数接收:实现敏捷开发最终的形态是下图的样式,...

2020-04-07 13:47:27 366

原创 Android架构师-组件化-组件化APT生成路由Group和Path文件 7

上文 即组件化文章6中,我们遗留的问题是在app中通过RouterManager去add每一个Activity,这样操作很耗时,之前我们也说过,可以在ARouterProcessor,即注解处理器中动态扫描到添加了ARouter注解的文件,然后在process中动态解析,我们现在主要来完成这一步操作目标:我们需要完成以下两个文件的生成1:首先我们需要知道我们要通过注解处理器生成的目标...

2020-04-07 09:16:09 429

原创 Android架构师-组件化-组件化项目部署2

组件化项目部署学习目录一:组件化项目的意义:面试技巧:资历够了,如何在最短时间打动面试官?全是组件化开发开发需求:不相互依赖,可以项目销户,任意组合,高度解耦团队效率:分模块打包,测试,统一版本管理(每个模块都能进行版本管理)我们看下大公司的:组件化可以将所有模块进行高度隔离 ,比如说在订单模块中调用了我的内容/信息可以任意将两个模块组装成一个新的app...

2020-04-06 10:29:36 132

原创 Android架构师-组件化-Gradle语法(全局gradle配置)1

组件化共分为8节课程组件化第一节:Gradle语法环境:什么是Gradle:是一种编程思想代码+详解样式:第一行代码:注意查看打印;Build-Toggle view第一种打印字符串的方式:println(“hello gradle”)第二种打印字符串的方式println "hello studio"apply plugin: 'com.a...

2020-04-06 10:29:14 438

原创 Android架构师-Android中的Context-初步分析Android中Context的实现-装饰者模式

尊重原创:https://blog.csdn.net/abm1993/article/details/82968235说到Context,大家一定非常熟悉,Android中的很多操作都和Context有关,比如打开activity、发送广播、打开本包下文件夹和数据库、获取classLoader、获取资源等等。那么这个Context究竟是何方神圣,我们不得而知,仅仅止步于如何使用Context,...

2020-04-06 10:28:58 219

原创 Android高级-揭秘IOC框架

什么是DIP ,IOC,DI,IOC容器DIP Dependency inverse Principle 依赖倒置原则强调系统的“高层组件”不应当依赖于“底层组件”,并且不论是“高层组件”还是“底层组件”都应当依赖于抽象,抽象不应当依赖于实现,实现应当依赖于抽象(软件设计原则)IOC Invrse of Control 控制反转一种反转刘,依赖和接口的方式,就是将控制权“往高...

2020-04-06 09:14:06 235

原创 Android高级-架构师-PMS源码解析以及apk安装原理(反向推理)

PMS指的是PackageManagerService1:什么是PMS 即PackageManagerServicePackageManagerService 负责应用程序的安装,卸载,应用信息查询 一个应用对应一个包PackageManagerService 类关系图下图的左侧是Client端,其余的右侧是Servier端从上层调用的...

2020-04-06 09:13:55 1206

原创 Android高级-架构师-Binder的架构设计

我们通过一个Demo将AIDL的实现,然后明白他的调用过程。方便后面的源码学习这个Demo主要是模拟qq授权登录的过程:从Binder_A,点击QQ登录,跳转到Binder_B(假装为QQ)登录获取授权,授权成功后再调用Binder_A,将结果返回,完成登录。首先我们先准备Binder_B,因为它需要先向Binder注册成为ServiceManager,并提供哪些方法?1:首先准备Bi...

2020-04-06 09:13:44 82

原创 Android架构师-组件化-组件模块间交互 3

1:子模块间(order/personal)相互交互Module间怎么交互(包括跳转,传参等等)比如:personal子模块需要跳转到order子模块怎么办?实现方案一:类加载技术交互但是这种方法很容易出错实现方案二:全局map记录信息这种方式我们来分析一下,我们看一下当我们的config.gradle的isRelease为true的时候,我们Build A...

2020-04-06 09:13:26 404

原创 Android架构师-组件化-组件化APT介绍与使用 4

一:什么是APT1:定义对于注解,可以查看前面的文章2:结构体语言(APT是结构体语言)3:Element程序元素4:需要掌握的API

2020-04-03 14:09:25 244

原创 Android架构师-组件化-组件化APT高级用法JavaPoet 5

一:什么是JavaPoet1:定义项目主页及源码:https://github.com/square/javapoet对我们前一章的内容做了一个封装,实现过程稍微有点不一样,传统的写法:从包名--》类---》属性--》方法 正序JavaPoet:方法--》属性---》类---》包 倒序2:依赖JavaPoet库使用JavaPoet有Retrofit和...

2020-04-03 14:09:06 215

原创 Android架构师-组件化-组件化路由架构设计 6

一:思考: 在组件化架构中,我们需要通过APT和JavaPoet技术生成什么样的类文件呢组件化路由架构设计图:思考:1:为什么要组名,为什么不直接通过path路径来取Class类对象呢 例如:组名app 组名order 组名personal比如组名有:app ,那么对应的路径的详细的Class类文件,那么这个文件就是ARouter$Path$$a...

2020-04-03 14:08:49 161

原创 Android 高级-IBinder的frameWork层分析

一、概述1.1 Binder架构binder在framework层,采用JNI技术来调用native(C/C++)层的binder架构,从而为上层应用程序提供服务。 看过binder系列之前的文章,我们知道native层中,binder是C/S架构,分为Bn端(Server)和Bp端(Client)。对于java层在命名与架构上非常相近,同样实现了一套IPC通信架构。图解:...

2020-04-03 14:07:35 427

原创 Android高级-架构师-Binder核心原理2

本篇文章转载自:https://www.jianshu.com/p/429a1ff3560c写给 Android 应用工程师的 Binder 原理剖析一. 前言这篇文章我酝酿了很久,参考了很多资料,读了很多源码,却依旧不敢下笔。生怕自己理解上还有偏差,对大家造成误解,贻笑大方。又怕自己理解不够透彻,无法用清晰直白的文字准确的表达出 Binder 的设计精髓。直到今天提笔写作时还依...

2020-04-03 14:07:24 192

原创 Android高级-架构师-ActivityManagerService的使用场景

ActivityManagerService的使用场景2:什么是ActivityManagerService从上图我们可以知道,四大组件(Activity,Service,ContentProvider,BrocastReceiver)的使用最后都由它来负责最后调用到Android源码。3:组件与ActivityManagerService的进程通信方式4:Ac...

2020-04-03 14:07:12 167

原创 Android高级-架构师-Binder核心原理1

1:什么是Binder?Binder可以实现进程与进程之间的通信。 (1)为什么感觉Binder很陌生(2)为什么要学习Binder Binder在相当于一个服务接入点,我提供了服务,你要对接我,我给你提供一个接入点,这个接入点就是Binder而对于客户端而言,binder可以看成是通向某个管道的入口,要想和某个服务进行通讯,首先要建立这个管道。...

2020-04-03 14:06:57 174

原创 Android高级-架构师-UML建模

AOP面向切面架构设计面向切面思想的之集中式登录架构设计 第一种方式 使用动态代理 可以实现切面设计简单例子实现上述功能---涉及到JDK动态代理(动态代理只能代理接口)https://blog.csdn.net/yaomingyang/article/det...

2020-04-03 14:06:46 98

原创 Android高级-架构师-Handler Message源码分析及手写实现2

1:Handler+Message原理分析Handler的sendMessage方法会调用Handler的enqueueMessage private boolean enqueueMessage(MessageQueue queue, Message msg, long uptimeMillis) { msg.target = this; if...

2020-04-03 14:06:34 259

原创 Android高级-架构师-Handler Message源码分析及手写实现1

我们都用过Handler,也知道handler有两种使用方式,目录* 1、Handler内存泄露测试* 2、为什么不能在子线程创建Handler* 3、textView.setText()只能在主线程执行,这句话是错误!* 4、new Handler()两种写法有什么区别?* 5、ThreadLocal用法和原理1:实现方式1:第一种 private Hand...

2020-04-03 14:06:24 226

原创 Android关于Scheme协议(分享页面跳转到app页面)

这周公司的需求,app端通过微信分享到朋友圈的链接,点击按钮调起app的指定页面类似于下面的小例子Scheme协议Scheme是一种页面跳转协议,和网站通过URL的形式访问一样,APP同样可以通过这种方式进行跳转,它可以很方便的满足我们在一些场景中的需求:当应用接收到Push,点击通知栏消息跳转到特定页面,比如商品详情等。 通过服务器下发的跳转路径,客户端可以根据路径跳转相应...

2020-02-21 15:54:57 2907

原创 Android高级-NDK-shell语法详解-变量的定义和使用(脚本语言)

Shell编程shell语法为什么要学习这课堂android在运行的时候,特别是编译shell是运行在linux系统上的1:什么是shellShell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。...

2019-12-27 10:10:10 289

原创 Android高级-NDK-Android.mk基础

1:Android.mk简介2 Android.mk的基本格式my-dir是有编译系统提供的的宏函数,返回的是当前文件的路径CLEAR_VAS 是由编译器提供的变量,GUN片段,可以清除除了LOCAL_PATH以外的以LOCAL开头的变量,如LOCAL_MODULE,LOCAL_SRC_FILES等,是因为编译器在单次执行中会多解析多个构建文件和模块定义,而Lo...

2019-12-26 17:05:53 181

原创 Android高级-NDK-C++MakeFile走读与语法基础

1:什么是makefile1:Makefile:定义makefile定义了一系列的规则来制定,哪些文件需要先编译,哪些文件需要重新编译,如何进行链接等操作makefile就是“自动化编译”,告诉make命令如何编译和链接2:Makefile里面有什么: 1:显示规则 2:隐晦规则 3:变量定义 4:文件指示(引用 指定makefile有效部分)...

2019-12-26 14:32:03 248

原创 Android高级-NDK-C++编译原理与语法详解

1:编译流程:编译范围四大过程:1:预处理2:编译3:汇编4:链接1:预处理 1 完成宏替换,文件引入,以及去除空行,注释等,为下一步的编译做准备 2 也就是堆各种预处理命令进行处理,包括头文件的包含,宏定义的扩展,条件编译的选择等编译流程: 2:编译: 1 将预处理后的代码编译成汇编代码,在这个阶段中没首先要检查diama...

2019-12-26 13:51:11 386

原创 Android高级-NDK-C/C++基础篇

1:类的构造和析构、友元函数C++是基于c扩展,增加了面向对象的语言。面向对象多了类,我们看c++如何创建类新建头文件student.h在student.h中 创建一个student.class#pragma once#ifdef Student_H#endif Student_Hclass Student { int i;public: /...

2019-12-26 11:20:17 239

原创 Android高级-NDK-C/C++基础篇

1:函数:2:函数定义在程序中测试一下;C语言执行是从上而下执行。是由函数组成的可执行文件。C是以函数为基础,而java是以类为基础,类作为一个对象,方法可以写在类中。而C是函数组成的,当我们设计一个程序,会产生很高的耦合,而头文件就相当于一个接口,每一个接口,每一个类都有一个接口,如果我想调用这个类,可以直接把这个接口,即.h文件引入进来就可以了,不用引入.cpp...

2019-12-20 17:54:01 356 1

原创 自定义View在指定范围内随手指移动而移动

上图:代码:public class MyTouchView extends View{ private Bitmap mBitmap; private int mStartX,mStartY; private int mLeft,mTop,mRight,mBottom; private int mBitWidth,mBitHeight; p...

2019-12-13 14:35:34 448

原创 Android高级-阿里VLayout使用和原理分析

VLayout 概念定义:VLayout全程VirtuaLayout,它是一个针对RecyclerView的LayoutManager扩展,主要提供一整套布局方案和布局间的组件复用的问题。由阿里团队开发,已经运用在手机淘宝项目上。2017年3月份开源。它通过定制化的LayoutManager,接管整个RecyclerView布局逻辑。使用: implementation...

2019-12-12 16:41:43 1303

原创 Android高级-SVG矢量图形打造不规则的自定义控件

全面了解SVG的特性SVG概念1:SVG定义SVG的全称是Scalable Vector Graphics,叫可缩放矢量图形ps:擎,是借用机器工业的同名术语,表明在整个系统中的核心地位。也可以称之为“支持应用的底层函数库”或者说是对特定应用的一种抽象。三维引擎需要解决场景构造、对象处理、场景渲染、事件处理、碰撞检测等问题三维图像引擎:OpenGL或DirectX2:S...

2019-12-11 16:41:08 624 1

原创 Android高级-自定义控件

分类:1:自绘控件:动画,显示加载,显示图表,没有对外界交互 2:组合控件:recyclviewId的Item 3:继承控件:对系统控件进行修改 4:事件类控件:对事件冲突的处理 5:容器类控件:流式布局,百分比布局这些容器类控件,可以对子控件进行重新摆放 我们用demo分析自定义控件;如图所示:实...

2019-12-11 11:10:53 281

原创 Android高级-Material Design交互设计-沉浸式和CardView的分析和兼容原理

Android的沉浸式是从Android4.4开始的有三种方式可以设置沉浸式:一种是设置Style,一种是代码的方式,还有一种是布局里添加占位状态栏Style<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. -...

2019-12-05 15:40:46 357

原创 Android高级-Material Design交互设计

概念主题这三个必须要求API 在21以上如果要兼容21以下的 就要使用兼容包:兼容主题主题常用属性ColorAccent 强调色常用控件常用动画Demo省略一堆API介绍压缩的太狠了,哈哈哈 下面的高45dp的黑色长框就是要实现的效果<?xml version="1.0" encoding="utf-...

2019-12-02 14:20:51 725

原创 Android高级-网易云音乐屏幕适配

为什么要进行屏幕适配屏幕碎片化表现为以下几个方面:1:屏幕尺寸碎片化:2:屏幕密度碎片化3:厂商碎片化:水滴屏,刘海屏屏幕适配常见方式二谷歌推出的百分比布局手写百分比布局;为什么百分比布局要这么写:子控件的属性的创建依赖于父容器的LayoutParams,查看源码可得。。。所以如果实现自定义布...

2019-11-27 13:53:00 1321 1

原创 Android高级-平行动画,小红书案例

1;如何设置系统控件的自定义属性值撸代码:

2019-11-25 15:52:31 200

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除