移动开发技术

Jason's Blog

利用traceview优化Android应用流畅度

众所周知,屏幕刷新频率必须要达到60Hz,人眼才能感觉不到界面的卡顿。60Hz意味着界面每一帧的计算加渲染时间不能超过16ms,当某些业务逻辑比较耗时的时候,执行时间可能超过16ms的阈值,这时候给用户直观的感受就是界面卡顿。

traceview是安卓sdk提供的一个性能分析工具,能够收集函数的执行时间,以精确的分析系统的瓶颈所在。当我们遇到系统卡顿问题的时候,可以利用这个工具来进行分析。下边的篇幅就项目中一个真实的卡顿问题,来介绍traceview工具的使用。

DOM XSS

因为JavaScript脚本功能强大,我们可以利用它来更改整个页面内容,所以我们就可以制造出利用真的目标域名的假页面

CardView在API 21以下的圆角效果处理

CardView是Android5.0(API 21)加入的新控件,当然,在API 21以下也能用,在build.gradle的依赖里加入下边一行就可以用了

compile 'com.android.support:cardview-v7:23.1.1'

项目中要做一个卡片浏览的程序,卡片需要有5dp的圆角,圆角效果CardView自带属性就可以支持,加上app:cardCornerRadius属性就好了,如下:

1
2
3
4
5
6
7
8
9
<android.support.v7.widget.CardView
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  app:cardUseCompatPadding="true"
  app:cardCornerRadius="5dp">
  ...
</android.support.v7.widget.CardView>

如何用charles进行https抓包

项目由http转成了https,遇到个问题是用charles不能抓包的问题。按照抓取http包的方式搭好了环境后,在浏览器里出现了这样的提示。

用c++编写PHP扩展

背景

有时候老业务用的是C++接口,但是为了快速开发,Web类业务已经转移到PHP上,所以如何用PHP封装老业务的C++接口进行调用,就是这篇文章所要解决的问题。

Shadowsocks上网攻略

由于某些原因,某博士的KX上网快要停止服务了,平时离不开Google,离不开……,为了自己能够更方便的工作和娱乐,也不再求人,于是研究了下如何自己搭建KX上网服务。下边就说一下如何利用Shadowsocks来搭建KX上网服务。

greenDAO使用入门

ORM(Object Relational Mapping)可以帮我们减轻开发工作量,提高工作效率。之前做Java Web项目用过Hibernate,现在想在Android项目中用一下ORM。

之前上网查了一下目前主流的Android ORM,有如下几种:
* ORMLite
* SugarORM
* GreenDAO
* Active Android
* Realm

当这些库都没有用过的时候,如何进行技术选型呢,我用了个很简单的办法,看下Github上的star数就好了,greenDAO是其中最多的,并且初步横向比较了下,greenDAO的性能不错,下边是网上一张greeDAO和ORMLite的性能对比图

greenDAO的使用比较简单,下边就开始介绍下如何使用greenDAO吧。