Android
路路人王
寻寻觅觅,总会有路的
展开
-
Android反编译之一:环境的配置
1.下载dex2jar 这个较为简单,下载最新版即可,我是从这个地址下的: https://sourceforge.net/projects/dex2jar/2.下载apktool 同样,下载最新版,我是从这个地址下的: https://bitbucket.org/iBotPeaches/apktool/downloads/ apktool需要配置一下环境(以Mac系...原创 2018-03-21 15:57:20 · 645 阅读 · 0 评论 -
Charles抓包三个小技巧:抓取Https、重定向某域名、限流
一、抓取Https--以Android平台为例,其他平台类似:总计三步:1.PC端charles安装CA证书打开charleshelp-->SSL Proxying-->Install Charles Root Certificate,下图为安好的证书:2.Android设备安装CA证书help-->SSL Proxying-->Install ...原创 2018-12-06 14:24:54 · 8771 阅读 · 0 评论 -
Android工程师从初级到资深所应具备的技术栈(不断补充中)
在Android开发上也做了有些年头了,对Android开关相关的技术有了一定的积累,不敢说有多深,总是一些经验与体会,一个开发人员,在完成工作的同时,应该不断完善自身,这样才能长期保持竞争力。在技术领域,有两个特点,一为更新极快,二为多年不变。都是对的,新技术更新很快,而一些原理,底层技术却是多年不变的。技术人员在积累技术时,要多关注底层原理,而不要把主要经力放在追逐新技术上。所谓万变不离其中,...原创 2018-11-15 11:40:03 · 1146 阅读 · 0 评论 -
Mac下在Android Studio中导入Retrofit源码
Retrofit的火热程度就不再多说了,作为当前最主流的Android平台的网络访问框架,应用极广。要在项目中集成并使用Retrofit,也是非常简单的,只需在build.gradle中引入框架的链接即可:implementation 'com.squareup.retrofit2:retrofit:2.4.0'本文中讨论的不是Retrofit的引入及使用,而是Retrofit源码项目如何...原创 2018-08-21 14:30:57 · 1264 阅读 · 0 评论 -
Android:如何跟踪第一个Activity界面绘制完成前的时间开销状况及优化方案
在Android中,以最典型的应用启动为例,从Launcher点击应用图标到第一个Activity加载完成,系统开放给开发者的接口及类包括:Application生命周期相关的方法:onCreate、启动Activity的onCreate、onStart、onResume。对于启动Activity的三个方法的执行时间,没什么疑问,如果定义的复杂,有复杂运行,则运行时间长,定义的简单,则运行的时间短...原创 2018-08-22 16:52:13 · 2465 阅读 · 0 评论 -
Android平台视频相关的多媒体技术理解笔记
做了几年的视频相关项目,一直没有系统的对所涉技术进行整理,趁着最近有点事情,整理归纳一下。多媒体技术还是一个相当大而全的领域,我是做视频的,只谈一下视频所涉的一些技术点的理解,平台是基于Android的。 视频所涉的多媒体技术也是非常庞大的,从哪入手呢,先来看一下图吧: 上图显示了一个视频从产生到展示到用户面前所涉的各个环节,封装格式直接使用了当前主流的mp4,编解...原创 2018-08-10 17:38:50 · 384 阅读 · 1 评论 -
你真的了解Android系统框架的四层结构吗?
先来看几个问题是否能回答:1)Android系统开发语言有两种:Java、c/c++,它们各用于开发那些层次2)JNI实质是什么,位于什么位置,NDK又是什么3)Android虚拟机是用于干什么的,什么时候介于工作4)既然Android内核主要是c/c++实现的,那么是否可以用C++来写app5)aidl又是什么,位于那一层6)各层次的如何配合工作1.首先来看一幅图吧:对于这个图,基本每一个And...原创 2018-07-06 19:08:17 · 9784 阅读 · 1 评论 -
你真的了解Android的Handler机制吗?
在Android系统中,Handler机制应用较广,尤其是在App层面,基本每个App都会用到。使用的场景主要是向主线程发送事件,更新UI。但大家真的了解Handler机制吗?看一下面的几个问题是否可以回答:a.Handler是如何实现多个线程之前事件传递的?b.Handler、Message、MessageQueue、Looper相互之间的数量比是多少,都是1:1吗?c.每个变量运行的线程是那个...原创 2018-06-04 17:55:22 · 478 阅读 · 0 评论 -
MAC下使用Sublime text 3查看Android源代码
1.首先,下载Sublime text 3,官网下载即可,打不开的可以下载我下载过的2.配置Sublime text 3 sublime text 3可以调为中文显示了,设置的方式为: 配置方式为找到Package Control(不同版本的地方不一样),我是在首选项下方找到的,然后调开这个页面,安装CTags插件,安装过程中可以在左下方看到一个动的=装好以后配置,配置一下快捷键Pac...原创 2018-05-16 17:54:42 · 2532 阅读 · 0 评论 -
Binder的学习与理解笔记之二:c++层的调用
接上一章:Binder的学习与理解笔记之一:总体印象https://blog.csdn.net/kcstrong/article/details/80321207整理一下c++层Binder的实现,所涉及类包括:ProcessState、IPCProcessThread、BpBinder1.还记得上一章提到的ProcessState承接java层BinderInternal类获得Binder对象的...原创 2018-05-16 11:42:22 · 333 阅读 · 0 评论 -
Binder的学习与理解笔记之一:总体印象
1.Binder是一种进程间的通信方式,由Android引入,广泛应用于Android的进程间通信(如WMS、AMS等),相对于Socket的方式,因其少了一次内存copy,所以速度更快。2.接1中所提的内存copy减少一次,是如何做到的呢?有两个进程A、B,需要进行数据传递,进程B发起Binder驱动,申请共享内存块,Binder驱动记录该共享内存块地址,进程A的数据直接copy入Binder驱...原创 2018-05-15 12:50:19 · 247 阅读 · 0 评论 -
Binder的学习与理解笔记之三:aidl原理及应用实例
1.Binder机制用于进程间通信,在Android的应用层开发中,所涉及的进程间通信的应用场景较少,一旦有这一类需求呢?是否要应用自身来维护Binder通信的流程?是的,如果应用层的开发者也需要对Binder机制足够了解,那进程通信的开发成本就太大了,毕竟,Binder的原理及流程还是相当复杂的。google向我们提供了应用层开发进程间通信的工具,aidl便是最普遍,也是定制灵活度最高的。其他还...原创 2018-05-25 15:54:59 · 432 阅读 · 0 评论 -
MAC下载Android源码
1.运行环境: MAC os 10.12.52.创建磁盘映像 鉴于我的MAC机器磁盘空间有限,决定在外置的硬盘上下载源码,创建磁盘映像: 打开磁盘工具,工具栏选择“文件”-->“新建映像”,设置项如下所示: 我的硬盘是之间在Windows环境下使用的,格式为NTFS格式,先格式化为MAC所识别的格式,选择要操作的磁盘分区-->“抹掉”,在打开的选项中 ...原创 2018-05-07 17:53:03 · 1364 阅读 · 0 评论 -
MAC查看某一so文件的cpu匹配
为排查在用户手中的Android设备存在找不到so的问题,需看一下某一so支持什么CPU格式。熟悉C层库的同学都知道,C所编译所得的静态库(.a)和动态库(.so)均为CPU相关的,不同的CPU环境需运行不同的so。在Android中,可以选用默认的so,即编译为armeabi环境的so运行于包括arm v5、arm v7,Intel x86环境。替代将全部CPU的so均打入包中,可能会降低一些性...原创 2019-01-22 17:52:47 · 3208 阅读 · 0 评论