1. Android无需权限显示悬浮窗, 兼谈逆向分析app

最近UC浏览器中文版出了一个快速搜索的功能, 在使用其他app的时候, 如果复制了一些内容, 屏幕顶部会弹一个窗口, 提示一些操作, 点击后跳转到UC, 显示这个悬浮窗不需要申请android.permission.SYSTEM_ALERT_WINDOW
权限.

  • Java并发编程:volatile关键字解析

讲解了Java内存模型,java内存中

  • 详解 Android 中的 HandlerThread
  • 使用post方法提交任务,postAtFrontOfQueue将任务加入到队列前端,postAtTime指定时间提交任务,postDelayed延后提交任务。
  • 使用sendMessage方法可以发送消息,sendMessageAtFrontOfQueue将该消息放入消息队列前端,sendMessageAtTime 指定时间发送消息,sendMessageDelayed延后提交消息。

  • Android 6.0 Overview Screen实现原理

android 5.0中,这个任务得到了进一步的加强,在android 5.0之前overView Screen中显示的任务快照是不可以配置的,但是在android 5.0中是可以配置的,开发者可以指定那些activity以什么样的形式,什么UI风格显示在最近任务列表中。
写入的操作全部都是在TaskPersister类的LazyTaskWriterThread线程中完成的:LazyTaskWriterThread@TaskPersister

  • 简析Android的垃圾回收与内存泄露
  • GC是按照有向图是否可达来判断对象实例是否有用
  • 如果不在需要某个实例,却仍然被引用,这个情况叫做内存泄露

  • 匿名类/非静态类内部class会保持对它所在Activity的引用,使用时要注意它们的生命周期不能超过Activity,否则要用static inner class

  • 善于在Activy中的生命周期(比如onPause)中手动控制其他类的生命周期

  • 使用新版Android Studio检测内存泄露和性能

  • 分析内存泄露
  • 追踪内存分配

  • 查询方法执行时间

  • MAT使用入门

  • Android的MVP设计模式

  • 理解OAuth 2.0

三、OAuth的思路
OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)。"客户端"不能直接登录"服务提供商",只能登录授权层,以此将用户与客户端区分开来。"客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。
"客户端"登录授权层以后,"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。

  • 使用LeakCanary检测安卓中的内存泄漏(实战)

  • Android架构思考(模块化、多进程)

原来的路由系统还可以继续使用,我们可以把整套架构想象成互联网,现在多个进程有多个路由,我们只需要把多个路由连接到一起,那么整个路由系统还是可以正常运行的。所以我们把原有的路由Router称之为本地路由LocalRouter,现在,我们需要提供一个IPS、DNS供应商,那就创建一个进程,该进程的作用就是注册路由,链接路由,转发报文,我们称之为广域路由WideRouter。

  • Android中,Context,什么是Context?

BroadcastReciver - 它本身不是context,也没有context在它里面,但是每当一个新的静态广播到达的时候,框架都传递一个context对象到onReceive()。这个context是一个ReceiverRestrictedContext实例,它有两个主要函数被禁掉:registerReceiver()和bindService()。这两个函数在BroadcastReceiver.onReceive()不允许调用。每次Receiver处理一个广播,传递进来的context都是一个新的实例。

  • Android Studio常用插件列表(持续更新...)

快速实现Parcelable接口的插件。
4、Android Postfix Completion

可根据后缀快速完成代码。

  • http://www.javadecompilers.com/apk

  • http://www.infoq.com/cn/articles/netty-high-performance/

  • Android总结篇系列:Android广播机制

自Android3.1开始,系统本身则增加了对所有app当前是否处于运行状态的跟踪。在发送广播时,不管是什么广播类型,系统默认直接增加了值为FLAG_EXCLUDE_STOPPED_PACKAGES的flag,导致即使是静态注册的广播接收器,对于其所在进程已经退出的app,同样无法接收到广播。

但是对于自定义的广播,可以通过复写此flag为FLAG_INCLUDE_STOPPED_PACKAGES,使得静态注册的BroadcastReceiver,即使所在App进程已经退出s,也能能接收到广播,并会启动应用进程,但此时的BroadcastReceiver是重新新建的。

  • JAVA并发编程——守护线程(Daemon Thread)

当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。

  • java io系列12之 BufferedInputStream(缓冲输入流)的认知、源码和示例
  • XML内容中有单引号和双引号的解决
    包含XML字符实体表

  • Attr、Style和Theme详解

Attr: flag表示这几个值可以做或运算; enum只能让你选择其中一个值

  • 正确使用Android性能分析工具——TraceView

  • 利用ConstantState判断两张图片是否为drawable中同一张图片
    可以利用ConstantState来保存图片的引用,当需要图片的时候,调用newDrawable(Resources)
    Shallow size(对象本身占用内存的大小) 68 -> 54, 但它的Dominating Size(管辖的内存大小)会激增,92 ->

  • Android性能专项测试之Heap Snapshot工具

  • 黑科技:用Proguard的-assumenosideeffects清除log

  • Log.i(简单字符串)
  • Log.i(局部变量)

  • Log.i(成员变量)

  • Log.i(简单字符串+局部变量)
    以上四种情况,日志被彻底移除,不会额外增加内存。

  • Log.i(简单字符串+成员变量)
    日志被移除,但是字符串拼接会存在,并占用内存。

  • Log.i(成员函数)其中,成员函数返回值为: 简单字符串

  • Log.i(成员函数)其中,成员函数返回值为: 简单字符串+局部变量
    以上两种情况,日志被彻底移除,不会额外增加内存。

  • Log.i(成员函数)其中,成员函数返回值为: 简单字符串+成员变量

  • 日志被移除,但是字符串拼接会存在,并占用内存。

  • Android draw、onDraw、dispatchDraw、invalidate、postInvalidate一些简要说明

调用dispatchDraw ()方法绘制子视图(如果该View类型不为ViewGroup,即不包含子视图,不需要重载该方法)

更多相关文章

  1. Android(安卓)属性系统(翻译)
  2. android避免内存泄露
  3. Android(安卓)中 Base64 转换成 图片
  4. 修改android SDK 模拟器(avd) 内存大小
  5. Android内存优化(二)--布局优化
  6. Android中使用"running services"查看service进程内存
  7. [转载]Android匿名共享内存和MemoryFile
  8. Android(安卓)WIFI 列表重复项问题
  9. Android(安卓)Native内存泄漏诊断

随机推荐

  1. Android智能手机恶意程序半年增加14.1倍
  2. android scroller overscroller用法
  3. SQLite3命令行使用查询android的telephon
  4. 2.1、Android Studio 开发流程
  5. Android模块编译过程中的错误no rules to
  6. 1.android 通过wifi调用打印机
  7. Android异步加载图像小结----演化理解 An
  8. Android简单的绘图机制与技巧
  9. Chrome访问Wap
  10. Android 基础知识7:Android 应用权限详解