android
墨墨向北
这个作者很懒,什么都没留下…
展开
-
Android 6.0 使用HttpClient的问题
Apache HTTP Client Removal Android 6.0 release removes support for the Apache HTTP client. If your app is using this client and targets Android 2.3 (API level 9) or higher, use the HttpURLConnection c原创 2016-05-05 10:42:16 · 946 阅读 · 0 评论 -
Parcelable
1、为什么要用Parcelable? 2、Parcelable的作用是什么? 3、怎么实现Parcelable接口?原创 2016-08-16 19:34:13 · 350 阅读 · 0 评论 -
封装的HttpClient工具类
此工具类封装了HttpClient和handler以及接口回调,可以在主线程运行post和get方法,通过实现CallBack得到返回结果。原创 2016-05-06 17:31:05 · 1272 阅读 · 0 评论 -
Android URLEncoder
bug: 发送http get请求的时出错Caused by : java.lang.IllegalArgumentException:Illegal character in query at index 70: ….原因: 在请求中我用到了不常用的字符,导致调用HttpGet(url)方法时,url参数解析错误解决方法: 所以如果法中这种问题,可以在调用下面的方法将参数加密URLEnco原创 2016-08-29 16:34:17 · 591 阅读 · 0 评论 -
android google mvp
google官方mvp demo的地址: https://github.com/googlesamples/android-architecture/tree/todo-mvp/下面对这个demo进行分析 先看一下\app\src\main\java目录结构 每一个页面都有一个文件夹,其中肯定包括4个类 Activity 管理Fragment, 建立Fragment和对应的Prese原创 2016-08-30 18:32:46 · 1107 阅读 · 1 评论 -
怎么查看APK的方法数
网上找的一个脚本,电脑系统为windows 亲测 好用。原创 2016-08-29 16:10:04 · 965 阅读 · 0 评论 -
SectionIndexer详解
package android.widget;/** * 接口可以被adapter实现,使AbsListView的sections之间可以快速滑动 * 一个secton是一群列表,有很多相似点,例如他们可能以相同的字母开头,或者是来自同一个歌手的歌曲 * ExpandableListAdapters认为groups和sections是同一个缩放组,应该返回一个合适的位置 * 可以看一下Abs原创 2016-08-10 10:55:59 · 2397 阅读 · 0 评论 -
我对androidannotations库的看法
最近才发现项目的代码中方法数已经有6万多,很吃惊,觉得项目貌似没有那么大,怎么会有那么多的代码量。但是我马上就想到了项目中用了androidannotation库,他会在编译时生成很多的代码。其实我本人特别讨厌使用这个库,虽然他没用反射,在编译时生成的代码,对效率也许没什么影响,并且感觉少些了一些findViewById,传参数啊,启动Activity啊之类代码。但是,我特别特别讨厌类后面还要加个_原创 2016-08-31 12:23:48 · 915 阅读 · 0 评论 -
robolectric完全解析
官网地址:http://robolectric.org介绍:在android设备上跑测试用例太慢了,编译、部署、启动app要花费很多时间。Robolectric是一个单元测试框架,测试是运行在jvm上的,只需要几秒钟。使用:在build.gradle中添加testCompile "org.robolectric:robolectric:3.4"android { testOptions {原创 2017-08-02 20:12:05 · 8677 阅读 · 0 评论 -
动态申请权限
官方文档中已经有了详细的介绍和使用说明 https://developer.android.google.cn/guide/topics/security/permissions.html#normal-dangerous下面是我的一些总结:1、为什么要动态申请权限?系统权限分为正常权限和危险权限。正常权限可以在清单文件中列出,系统会自动授予这些权限。对于危险权限,如果设备运行版本大于等于Andro原创 2017-07-26 16:27:07 · 536 阅读 · 0 评论 -
compileSdkVersion、buildToolsVersion、minSdkVersion、targetSdkVersion
compileSdkVersion:代码使用到的Android SDK的版本 有时候需要降低compileSdkVersion版本,来支持旧版本SDK中的类,例如httpClient(6.0中已删除),但直接改这个值可能会报错,解决方法: 1、更改styles.xml 使用低版本style。例如改成parent=”android:Theme.Light.NoTitleBar” 2、如果还报错,原创 2016-05-04 18:18:22 · 859 阅读 · 0 评论 -
android studio 打jar包并混淆
打包并混淆步骤:1、将项目改成library 在build.gradle中将apply plugin: ‘com.android.application’改为apply plugin: ‘com.android.library’,并注释掉applicationId。2、生成classes.jar文件 打开studio右侧的Gradle菜单 点开项目下的Tasks下的build下的assemble原创 2016-05-04 17:54:28 · 2229 阅读 · 0 评论 -
eclipse 打jar包并混淆
由于开发android的sdk,要打出jar包供第三方使用。开发工具是android studio,没有找到很好的打jar包的方式(有待研究)。所以转用eclipse来打jar包,然后用proguard混淆。遇到了几个问题:1、android studio的项目怎么转到eclipse中 新建eclipse项目,将android studio的相应目录覆盖到eclipse中就好了 2、e原创 2016-04-14 19:26:45 · 4876 阅读 · 1 评论 -
android drawable总结
首先要了解几个单位 px:屏幕像素 dpi: 屏幕密度,每英寸包含的像素数量(例如各种 drawable-dpi) dp: 与屏幕密度无关,不同屏幕密度的设备上显示的大小相同 dip: 就是dp sp: 与屏幕密度无关,字体大小dp和px换算 将屏幕密度为160dpi的中密度设备屏幕作为基准屏幕,在这个屏幕中1dp=1px 在hdpi设备下1dp等于1.5px 在xxhdpi原创 2016-05-10 21:04:17 · 341 阅读 · 0 评论 -
android 短信拦截并删除
目前在做短信拦截并删除,遇到了各种坑,但同时说明了安卓系统越来越安全了,很赞! 拦截短信: 目前4.4版本以上的系统是不可能拦截到了,原因: 4.4及其以后系统,只能设置一个默认的SMS短信app,但短信到达,首先会通知这个app,并且只有这个app有对短信数据库的修改权限和短信的发送权限,并且短信广播不再是有序广播,也就是App没有办法拦截这个广播,所有app都快接收到短信到达的广播通知,但原创 2016-05-09 10:37:10 · 9570 阅读 · 1 评论 -
handler 的Looper.prepare()的问题
最近在线程中使用handler例如:final Handler mhandler = new Handler();new Thread(new Runnable() { @Override public void run() { Looper.prepare(); mhandler.post(new Runnable() { @Over原创 2016-05-12 10:10:25 · 976 阅读 · 0 评论 -
android Looper源码分析
looper的主要作用:绑定当前线程,然后不断的在MessageQueue中去取消息,交给handler处理 下面会从源码中的各种方法着手,开始分析静态的loop()方法:原创 2016-05-12 17:10:22 · 397 阅读 · 0 评论 -
打jar包 资源文件找不到的问题
android项目打jar包的时候,如果用layout布局文件,会出现资源文件找不到的问题。 例如jar包中activity文件中会出现类似这样的代码setContentView(2130968601);这样其他人用这个jar包时候肯定会报错,因为找不到对应的布局文件。可以使用getIdentifier()方法获得应用包下的指定资源id,直接上代码 activity中setContentView原创 2016-05-03 17:50:29 · 1940 阅读 · 0 评论 -
LogUtil
import android.util.Log;public class LogUtil { public static final int VERBOSE = 5; public static final int DEBUG = 4; public static final int INFO = 3; public static final int WARN = 2;原创 2016-05-04 14:08:45 · 318 阅读 · 0 评论 -
Robotium框架的使用和源码解析
使用:1、添加依赖androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.6.3'2、添加测试代码,例如:@RunWith(AndroidJUnit4.class) public class MainActivityTest { @Rule public ActivityTestRule<MainActivity>原创 2017-08-01 20:46:58 · 836 阅读 · 0 评论