
android
汪银
哈哈哈。。。。
展开
-
android6.0动态权限申请(其他所有权限简单介绍)
Android 6.0 以后为了保护用户隐私,将一些权限的申请放在了应用运行的时候去申请, 比如以往的开发中,开发人员只需要将需要的权限在清单文件中配置即可,现在Google 可能想到用户可能并不注意这些权限。 so~ 就迎来了动态权限机制。请注意,如果你使用了API 23以上, 然而并没有用代码处理权限问题。 那么你的程序将会 CRASH !!!下面我们来看看到底哪些权限原创 2016-09-21 10:26:20 · 4296 阅读 · 1 评论 -
APK的安装流程
文章目录我们来思考一下Android系统是如何安装一个APK文件的,从直观的流程上,当我们点击一个APK文件或者从应用商店下载一个APK文件,会弹起一个安装对话框,点击安装就可以安装应用。那么这里面的流程是什么样的呢?首先很容易想到的是,Android根据文件类型MimeType来判断是否弹起安装页面,就行点击一个视频会调起视频播放器一样。Android系统常见的文件类型如下所示:add("app...原创 2018-04-10 14:47:01 · 14341 阅读 · 0 评论 -
APK的加载流程
文章目录我们前面说过APK可以分为代码与资源两部分,那么在加载APK时也会涉及代码的加载和资源的加载,代码的加载事实上对应的就是Android应用进程的创建流程,关于这一块的内容我们在文章01Android进程框架:进程的创建、启动与调度流程已经分析过,本篇文章 我们着重来分析资源的加载流程。我们知道在代码中我们通常会通过getResource()去获取Resources对象,Resource对象...原创 2018-04-10 14:52:38 · 2373 阅读 · 1 评论 -
Binder学习指南
毫不夸张地说,Binder是Android系统中最重要的特性之一;正如其名“粘合剂”所喻,它是系统间各个组件的桥梁,Android系统的开放式设计也很大程度上得益于这种及其方便的跨进程通信机制。理解Binder对于理解整个Android系统有着非常重要的作用,Android系统的四大组件,AMS,PMS等系统服务无一不与Binder挂钩;如果对Binder不甚了解,那么就很难了解这些系统机制,从而...转载 2018-07-11 10:14:01 · 167 阅读 · 0 评论 -
阿里热修复SophixStubApplication中java.lang.ClassNotFoundException引起的闪退
关于怎么集成Sophix,官方文档写的很清楚,这边就不班门弄斧了。此次记录下关于更新完毕后打开应用崩溃的问题:07-18 18:14:29.941 12173-12173/? E/Sophix.PatchManager: callRealAppAttach java.lang.ClassNotFoundException at com.taobao.sophi...原创 2018-07-18 18:24:21 · 2426 阅读 · 0 评论 -
Android组件化开发
1、为什么要项目组件化随着APP版本不断的迭代,新功能的不断增加,业务也会变的越来越复杂,APP业务模块的数量有可能还会继续增加,而且每个模块的代码也变的越来越多,这样发展下去单一工程下的APP架构势必会影响开发效率,增加项目的维护成本,每个工程师都要熟悉如此之多的代码,将很难进行多人协作开发,而且Android项目在编译代码的时候电脑会非常卡,又因为单一工程下代码耦合严重,每修改一处代...原创 2018-07-20 15:14:23 · 1358 阅读 · 0 评论 -
Android屏幕适配最优方案
一、今日头条屏幕适配方案今日头条屏幕适配方案的核心原理在于,根据以下公式算出density当前设备屏幕总宽度(单位为像素)/ 设计图总宽度(单位为 dp) = densitydensity的意思就是1 dp占当前设备多少像素为什么要算出density,这和屏幕适配有什么关系呢?public static float applyDimension(int unit, ...转载 2018-08-22 10:43:50 · 18599 阅读 · 5 评论 -
解决android studio引用远程仓库下载慢(JCenter下载慢)
今天在下载依赖包的时候总是time out,然后在网上找到一个很nice的方法,记录一下: 第一种方法使用开源中国的maven库阿里云的(速度飞快):http://maven.aliyun.com/nexus/content/groups/public/替换项目根目录下build.gradle中的repositories { jcenter()}为:re...原创 2018-08-22 18:57:55 · 2917 阅读 · 0 评论 -
Android基础架构设计
最近公司因为发展,会新开几个项目,领导让整理下基础框架好统一使用,也方便其他人员熟悉代码。因此,再次记录一下。1.1基本结构基本架构我先用现在市面普及和成熟的mvp(model-view-presenter),我的理念是职责分层,高内聚低耦合。MVP模式的核心思想:相对于我们大家以前熟知的mvc来说,mvp把activity中的UI逻辑抽象成View接口,吧业务逻辑抽象成pre...原创 2018-08-27 18:20:50 · 1614 阅读 · 2 评论 -
Android手机无线调试
一、啥是无线调试?为啥需要无线调试平时我们调试APP的时候,会将手机连接到USB数据线,然后再将数据线连接到电脑上。但是,由于长期插拔或者USB线材材质的问题,经常会出现无法连接的问题;而且,通常公司内会有手机多而线不够用的问题;还有就是,桌面上一堆手机一堆线是不是感觉很乱?此时,我们就需要用到无线调试了。那么,什么是无线调试呢?这还用问,就是没有线呗——手机和电脑连接的时候不需要用数据线...原创 2018-09-27 15:02:14 · 10209 阅读 · 1 评论 -
APK的打包流程
文章目录一 资源的编译和打包二 代码的编译和打包Android的包文件APK分为两个部分:代码和资源,所以打包方面也分为资源打包和代码打包两个方面,这篇文章就来分析资源和代码的编译打包原理。APK整体的的打包流程如下图所示:具体说来:通过AAPT工具进行资源文件(包括AndroidManifest.xml、布局文件、各种xml资源等)的打包,生成R.java文件。通过AIDL工具处理AIDL文件,...原创 2018-04-10 14:44:22 · 1898 阅读 · 0 评论 -
Android系统设计原则与设计模式
什么是设计原则?1. 单一职责原则(SRP) 定义:就一个类而言,应该仅有一个引起它变化的原因。 从这句定义我们很难理解它的含义,通俗讲就是我们不要让一个类承担过多的职责。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到破坏。 比如我经常看到一些Android开发在Activity中...原创 2018-03-20 10:38:50 · 1755 阅读 · 0 评论 -
如何让其他软件能调起自己写的视频播放器(附:android5.0系统源码)
如何让其他软件能调起自己写的播放器原创 2016-09-23 14:50:05 · 3405 阅读 · 0 评论 -
Genymotion启动失败
最近在使用genymotion的时候总是不能正常启动,一直报错:the virtual device got no ip address,the virtualbox dhcp server has not assigned an ip address to the virtual device尝试了很多方法:1.安装官网打包好的VBox和Genymotion2.独立安装最新的VBox原创 2016-09-28 14:27:14 · 798 阅读 · 0 评论 -
Execution failed for task ':app:transformNative_libsWithStripDebugSymbolForRelease'.
最近在项目中突然碰到这个问题,查了好多资料,感觉最有用的就是这个方法,做个笔记!Error:Execution failed for task ':app:transformNative_libsWithStripDebugSymbolForRelease'.> Java.lang.NullPointerException (no error message)在对应项目的 buil原创 2017-04-01 16:05:09 · 9484 阅读 · 0 评论 -
Android Fragment完全解析,关于碎片你所需知道的一切
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/8881711我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平转载 2017-10-14 11:16:34 · 152 阅读 · 0 评论 -
解决ScrollView嵌套viewPager中嵌套listView滑动事件冲突问题(水平方向)
我们在开发中经常会碰到view滑动冲突的情况。滑动冲突的解决办法就两种:1.外部拦截法:是指在点击事件先经过父容器的拦截处理,如果父容器需要处理此事件就进行拦截,如果不需要此事件就不拦截,这样就可以解决滑动冲突的问题,外部拦截法需要重写父容器的onInterceptTouchEvent()方法,在内部做相应拦截处理。2.内部拦截法:是指点击事件先经过子View处理,如果子view需要次事件就直接消...原创 2018-03-14 18:36:09 · 2236 阅读 · 2 评论 -
Android应用图标微技巧,8.0系统中应用图标的适配
原文链接:http://blog.youkuaiyun.com/guolin_blog/article/details/79417483大家好,2018年的第一篇文章到的稍微有点迟,也是因为在上一个Glide系列结束之后一直还没想到什么好的新题材。现在已经进入了2018年,Android 8.0系统也逐渐开始普及起来了。三星今年推出的最新旗舰机Galaxy S9已经搭载了Android 8.0系统,紧接着小米...转载 2018-03-19 14:21:03 · 261 阅读 · 0 评论 -
Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
原文链接:http://blog.youkuaiyun.com/guolin_blog/article/details/9097463其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜...转载 2018-03-19 14:23:49 · 168 阅读 · 0 评论 -
Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
原文链接:http://blog.youkuaiyun.com/guolin_blog/article/details/9153761记得在前面的文章中,我带大家一起从源码的角度分析了Android中View的事件分发机制,相信阅读过的朋友对View的事件分发已经有比较深刻的理解了。还未阅读过的朋友,请先参考 Android事件分发机制完全解析,带你从源码的角度彻底理解(上) 。那么今天我们将继续上次未完成的...转载 2018-03-19 14:24:52 · 200 阅读 · 0 评论 -
fragment嵌套fragment显示数据
当碰到多个fragment嵌套需要显示数据的时候,fragmentManager需要使用getChildFragmentManager()来获得,否侧会出现数据显示不出来的情况;原创 2018-03-19 14:28:42 · 697 阅读 · 0 评论 -
Android系统设计概述
Android系统架构图Android系统架构图从上到下依次分为六层:应用框架层进程通信层系统服务层Android运行时层硬件抽象层Linux内核层原创 2018-03-19 15:06:16 · 1120 阅读 · 0 评论 -
Android系统启动流程
1.init进程启动(用户空间第一个进程)总结:a.创建和挂在启动所需的文件目录b.初始化和启动属性服务c.解析init.rc配置文件并启动Zygote进程2.Zygote进程启动过程(创建应用程序进程和SystemServer进程)Zygote的main方法:1.创建一个server端的socket。2.预加载类和资源3.启动SystemServer进程4.等待AMS请...原创 2019-02-14 15:46:31 · 317 阅读 · 0 评论