Android
文章平均质量分 68
vivianking68
今日事今日毕,生命经不起等待!!
展开
-
Dalvik和ART的GC区别
Dalvik和ART的GC区别(转载)小结笔记Dalvik中GC的问题如下GC时挂起所有线程大而连续的空间紧张内存碎片化严重ART在ART中不需要挂起所有程序的线程(解决问题1)提供 LOS :large object space 专供Bitmap使用,从而提高了GC的管理效率和整体性能(解决问题2)ART里有moving collector来压缩活动对象,使...原创 2018-06-20 10:18:17 · 2216 阅读 · 0 评论 -
Android中常用的几种加密
Android中常用的几种加密转载 2018-03-24 16:25:52 · 863 阅读 · 1 评论 -
Android Context完全解析
Android Context完全解析转载 2018-03-24 16:25:19 · 128 阅读 · 0 评论 -
[基础] 7. Android的线程和线程池
Android的线程默认一个进程只有一个主线程,其他线程都是子线程/工作线程。主线程主要负责展示和交互,耗时的任务交给子线程除了Java的Thread,Android中还有一些特有的线程形态AsyncTask:doInBackground耗时任务默认在串行线程中,其他运行在主线程。源码解析看这里HandlerThread:继承Thread,优点是有自己的消息循环。适合需要给子线程传...原创 2018-03-14 15:36:46 · 172 阅读 · 0 评论 -
Android 动态加载技术(插件化)
Android 动态加载技术(插件化)http://vivianking6855.github.io/2018/03/15/Android-Plugin/原创 2018-03-20 14:06:52 · 224 阅读 · 0 评论 -
ART 和 Dalvik
ART 和 Dalvikhttp://vivianking6855.github.io/2016/10/14/Android-ART-Dalvik/原创 2018-03-20 14:06:06 · 155 阅读 · 0 评论 -
[基础] 3.4 ContentProvider的工作过程
ContentProvider启动过程启动过程: ActivityThread main -> AMS 远程调用ApplicationThread -> 通过ActivityThread的H handler切换到主线程转载ContentProvider入口是ActivityThread的main,ActivityThread是管理应用所在进程的主线程的,也就是UI线程的管...原创 2018-03-14 11:28:17 · 387 阅读 · 0 评论 -
[基础] 3.3 BroadcastReceiver的工作过程
基础知识从类型上可以分为有序广播和标准广播两大类 从方法上分为静态注册的广播和动态注册的广播 在Android中,广播是跨进程的,因此在进程间传输数据时候,可能会泄露安全信息。系统还提供了本地广播(LocalBroadCastReceiver)来进行广播的安全管理使用定义广播接收者:继承BroadcastReceiver,重写onReceiveclass MyRec...原创 2018-03-13 16:49:39 · 216 阅读 · 0 评论 -
[基础] 3.2 Service工作过程
Service活动状态有两种:启动状态和绑定状态 (两种可以共存)使用启动Intent intent = new Intent(this, MyService.class);startService(intent);绑定Intent intent = new Intent(this, MyService.class);bindService(intent, mS...原创 2018-03-13 14:50:34 · 254 阅读 · 0 评论 -
[基础] 3. Android四大组件
Android四大组件四大组件:Activity,Service,Broadcast,ContentProvider只有BroadcastReceiver可以在AndroidManifest或代码中册,其他都必须在AndroidManifest文件中注册 只有ContentProvider的调用不需要借助Intent,其他三个组件都需要借助IntentActivity是一种展示型组...原创 2018-03-13 13:35:00 · 209 阅读 · 0 评论 -
[基础] 3.1 Activity的工作过程
Activity的工作过程核心流程图:startActivity -> AMS远程调用ApplicationThread->通过ActivityThread H handler切到主线程创建Activity,回调OnCreate等关键代码片 一 : Activity 方法 startActivityForResultpublic void startActivi...原创 2018-03-13 13:34:15 · 268 阅读 · 0 评论 -
[基础] 4. 理解Window和WindowManager
Window和WindowManagerWindow(abstract class)是一个抽象的概念。每个Window都对应一个View和一个ViewRootImpl,ViewRootImpl是联系桥梁。因此Window并不是实际存在的,是以View的形式存在。 我们通过WindowManager (interface extends ViewManager)访问Window。 ViewMa...原创 2018-03-12 19:21:29 · 210 阅读 · 0 评论 -
权限管理小结
权限管理小结app的内置存储(data/data) app不需要申请写权限。其他app无权限访问,除非rootapp的扩展存储 (sdcard/Android/data/),Android 4.4 之后不需要申请写权限,API < 19还是需要申请公共存储( sdcard/your folder/)需要申请写权限 <uses-permission androi...转载 2018-03-22 14:49:31 · 160 阅读 · 0 评论 -
[基础] 2. IPC 进程间通信
一、IPC含义IPC Inter-Process Communication.含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。二、Android中的多进程模式在Android中使用多进程只有一种方法:给四大组件(Activity,Service,Receiver,ContentProvider)在AndroidMenifest中制定android:process...原创 2018-03-12 14:37:51 · 314 阅读 · 0 评论 -
Android Studio 生成jar包
简介环境 AndroidStudio 3.1今天在写测试ClassLoader的时候,需要生成jar包。但是AS 会自动为library生成aar。下面记录生成jar包流程,以备后用步骤生成jar包流程:File -> New -> New Module 创建类库Gradle中找到”transformClassesAndResourcesWithSyncLi...原创 2018-04-09 10:17:42 · 336 阅读 · 0 评论 -
Android ClassLoader 小结
简介Android的ClassLoader和Java的ClassLoader有一些差异:Java中的ClassLoader可以加载jar文件和Class文件(本质是加载Class文件)Android中ClassLoader加载的不再是Class文件,而是dex文件(DVM,ART都是如此)不过都是遵循双亲模式:有解析请求会先交给父类,如果父类无法解析才会往下传Java...原创 2018-04-09 11:46:07 · 734 阅读 · 0 评论 -
软件架构
软件架构(Software Architecture)就是软件的基本结构。MVX(X泛指C - Controller、 P - Presenter、 VM- View Model),具体是指MVP,MVC,MVVM。这三种是我们现在经常看到或讨论的UI架构模式。仅仅是表现层的架构(Presentation Pattern),不适合作为系统框架。文中所说的软件架构是指体系架构。发布于...原创 2018-06-15 16:40:08 · 295 阅读 · 0 评论 -
Android小知识点(三)
1. Java 9新特性2. ThreadLocal解决多线程不需要相互依赖的成员变量问题最常见的ThreadLocal使用场景为 用来解决 数据库连接、Session管理等3. Android 性能优化之String篇重用的StringBuilder在拼接动态字符串时,尽量用 StringBuffer(同步) 或 StringBuilder的 append,来减...原创 2018-05-08 13:48:38 · 308 阅读 · 0 评论 -
Android app 安全
App安全从一款被篡改的软件谈 Android App 的安全之路《Android攻防实战》读书笔记——保护App安全安全问题APP安全问题反编译APK反编译apk加固Apk源码的加固(加壳)原理解析和实现Android中的Apk的加固(加壳)原理解析和实现Android中的Apk的加固(加壳)原理解析和实现Android中对Nativ...原创 2018-04-27 11:10:19 · 424 阅读 · 0 评论 -
Android 性能优化 - Android Studio & MAT 如何分析内存
Android 性能优化 - Android Studio & MAT 如何分析内存 http://vivianking6855.github.io/2018/05/04/Android-optimization-AS-MAT/原创 2018-05-04 18:27:55 · 420 阅读 · 0 评论 -
[进阶] 源码-常用库
源码解析-目录原创 2018-04-25 11:20:07 · 126 阅读 · 0 评论 -
Android 小知识点 (二)
1. 解决依赖库冲突问题彻底弄清support支持库,以及v4 v7重复依赖问题深究Gradle管理依赖2. Android系统布局android.R.layout3. JRE 和 JDK 的区别是什么JRE可以支撑Java程序的运行,包括JVM虚拟机(java.exe等)和基本的类库(rt.jar等)JDK可以支持Java程序的开发,包括编译器(javac.ex...原创 2018-04-25 10:59:14 · 157 阅读 · 0 评论 -
移动应用优化解决方案
前言移动应用优化是产品中非常重要,也是比不可少的一环。Android app优化主要包含size优化,性能优化,重构等。size优化,app减负是必不可少的一环。性能优化,提升UX体验的重要途径(当然Spec的定义也会直接影响UX)。性能优化主要关注重构:业务复杂度提示,需要重构提高易测性和扩展性,降低耦合其中性能优化又是特别重要的一环性能主要关注:launch ...原创 2018-04-12 10:07:35 · 586 阅读 · 0 评论 -
[Tool] android gradle tools中的compile,implement, api指令
android gradle tools 3.X 中依赖,implement、api 指令转载 2018-03-29 10:23:02 · 225 阅读 · 0 评论 -
Android图片解决方案
常用的图片库加载和缓存库Picasso: Square公司Fresco FacebookGlide : 2014年google I/O大会上发布的官方推荐 Glide和Picasso对比Volley比较Android 三大图片加载框架的对比——ImageLoader,Picasso,GlideAndroid图片加载库的选择与如何封装? 基于七牛和fresco的一...原创 2018-04-10 16:42:18 · 163 阅读 · 0 评论 -
Android网络编程
常用库HttpClient 基本不再维护,官方推荐Android开发用HttpUrlConnection.HttpURLConnection HttpURLConnection是一种多用途、轻量极的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序 google HttpURLConnection Volley Volley是一个简单的异步http库。自带缓存,支...原创 2018-04-10 16:41:58 · 124 阅读 · 0 评论 -
AppUniform 架构 - Clean Architecture
简介为什么需要架构?当项目非常庞大时,项目的可维护性,可扩展性,易测性显得尤其的重要。好的架构能够帮助我们更好实现:•易维护 •易测试 •高内聚 •低耦合Bob大神的Architecture is About Intent, not Frameworks. 个人理解是:架构应该是面向意图,而不是面向片段。因此在架构的分层最好依据不同的意图来划分。另外业务逻辑庞大的...原创 2018-04-03 11:39:33 · 441 阅读 · 0 评论 -
Android 小知识点 (一)
Android 查看每个应用的最大可用内存Android退出应用最优雅的方式android 输入法弹出时不能挡住按钮把布局顶上去WebViewJS和Java的安全交互Android混合开发之WebViewJavascriptBridge实现JS与java安全交互性能Android WebView:性能优化不得不说的事腾讯TBS X5 WebView的简单...原创 2018-03-27 12:55:25 · 185 阅读 · 0 评论 -
[基础] 5.2 View的事件体系和冲突
View 基础知识view代表了一个控件。ViewGroup也是view。 MotionEvent:手指接触屏幕后所产生的一系列事件(ACTION_DOWN、ACTION_MOVE、ACTION_UP等) 正常情况下,手指触屏点击事件有:(1) 点击屏幕后离开,事件顺序为 DOWN -> UP (2) 点击屏幕后滑动一会再离开,事件序列为DOWN -> MOVE -&...原创 2018-03-12 14:31:32 · 168 阅读 · 0 评论 -
[基础] 5.1 Android View的绘制过程
View的绘制过程View的绘制首先起于ViewRootImpl,并且View的三个流程也是通过ViewRootImpl来完成。 过程中有很多组件的身影,比如WindowManager,ActivityThread,Activity,DecorView,ViewRootImpl(连接WindowManager和DecorView的纽带)绘制流程View的绘制首先起于ViewRoo...原创 2018-03-12 11:50:12 · 134 阅读 · 0 评论 -
Contact 优化 - size优化
content {:toc}简介size优化是移除unused resources,降低app的size。可以节省设备空间,同时也可以提升app在store上的下载几率。工具size优化会用到Android Studio自带工具: “Remove Unused Resources”优化实践使用工具:“Remove Unused Resources” ...原创 2018-03-09 10:11:13 · 339 阅读 · 0 评论 -
Contact 优化 - 开篇
简介app优化主要包含size优化,性能优化,重构等。其中性能优化又是特别重要的一环。性能主要关注:内存CPU耗电卡顿渲染进程存活率等性能优化需要注意:不要过早的做性能优化,app先求能用再求好用。在需求都还没完成的时候,花大量时间在优化上是本末倒置的优化要用实际数据说话,建议借助测试工具进行检测。检测工具参看这里总之,要合理优化,数据量化。Co...原创 2018-03-09 10:10:32 · 359 阅读 · 0 评论 -
性能优化(五)内存优化
content {:toc}前言不管是做什么优化都要先找到root cause,然后分析,最后执行方案。内存优化也不例外。我们可以从下面的几个入手点来找root cause代码逻辑模拟用户操作,查看内存占用较高的点,分析HeapDump页面退出后,分析HeapDump分析HeapDump可以参考DominatorTree,确定占用内存最多的实例通过...原创 2018-03-09 10:09:32 · 284 阅读 · 0 评论 -
性能优化(四)Google典范之Render实践
前言优化的思想:尽量减少布局文件的层级和降低Overdraw来减轻CPU和GPU负载。再贴下CPU和GPU的工作,潜在的问题,检测的工具和解决方案图:解决方案一、 Layout优化我们可以在Layout设计时考虑移除层级和删除无用的控件。还可以通过通过Hierarchy Viewer去检测渲染效率,去除不必要的嵌套。1. Layout 设计优化在布局...原创 2018-03-09 10:08:54 · 396 阅读 · 0 评论 -
性能优化(三)Google典范之开篇
前言2015年初google发布了Android性能优化典范,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方面展开,Android的渲染机制,内存与GC,电量优化。一、 Android渲染机制首先了解下Android的渲染机制。...原创 2018-03-09 10:08:07 · 300 阅读 · 0 评论 -
性能优化(二)内存管理 & Memory Leak & OOM
内存管理java虚拟机运行时数据区内存示意图Stack和Heap:(更详细的数据区,可以看图“java虚拟机运行时数据区”)Stack空间(进栈和出栈)由操作系统控制,其中主要存储函数地址、函数参数、局部变量、还有一些基础类型等等,所以Stack空间不需要很大,一般为几MB大小。Heap空间的使用由程序员控制,程序员可以使用malloc、new、free、delete等...原创 2018-03-09 10:06:50 · 242 阅读 · 0 评论 -
性能优化:目录
目录性能优化(一)方法概述性能优化(二)内存管理 & Memory Leak & OOM性能优化(三)Google典范之开篇性能优化(四)Google典范之Render实践性能优化(五)内存优化性能优化(六)卡顿监测性能优化:要点性能优化:工具性能优化实践Contact 优化 - 开篇Contact 优化 - size优化Contact...原创 2018-03-09 10:05:27 · 226 阅读 · 0 评论 -
性能优化(一)方法概述
前言关于性能优化的问题,主要关注的有:内存CPU耗电卡顿渲染进程存活率等性能优化注意事项:不要过早的做性能优化,app先求能用再求好用。在需求都还没完成的时候,花大量时间在优化上是本末倒置的优化要用实际数据说话,建议借助测试工具进行检测 网易的Emmagee腾讯的GT和APT科大讯飞的iTestGoogle的Battery Historian合理优化...原创 2018-03-09 10:04:32 · 294 阅读 · 0 评论 -
Activity知识体系
Android知识体系图2018/3/20 更新原创 2018-03-15 10:35:56 · 247 阅读 · 0 评论 -
[基础] Bug日志系统
简介作为RD最头痛的莫过于没有足够的log来分析和难以复现问题. bug日志系统是非常有必要的。不管是自己搭建还是使用三方如何自己搭建搭建平台肯定要考虑:获取log,上传,分析等模块,这里只介绍了Android client端如何入手。Java提供了一个机制,用来捕获并处理在线程对象中抛出的未检测异常,以避免程序终止 通过Thread的静态内部实例UncaughtExcept...原创 2018-03-14 18:46:11 · 1155 阅读 · 0 评论