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完整权限
  2. android ble蓝牙开发略解
  3. Android利用ContentResolver查询的三种方
  4. Android(安卓)Logcat和Debug的使用
  5. Android引用第三方jar的问题
  6. PopWindow与ListView多选实现
  7. Android内容提供者之读取联系人信息
  8. Android(安卓)Activity 生命周期(lifecycl
  9. Android实现淘宝倒计时功能
  10. Android(安卓)The connection to adb is