- 博客(39)
- 资源 (39)
- 收藏
- 关注
原创 android 基于Gradle 混淆jar包
大家都知道,混淆apk,配置如下,编译工具会给我们自动混淆 混淆代码: 1 先到工程目录下,找到project.properties 这个文件 2 根据提示找到proguard-android.txt 这个文件 3 将这个文件拷贝回工程目录。 4 将project.properties这个文件里面的 proguard.config=proguard-android.txt但是如果混淆的时候需
2016-11-28 11:56:19
2589
原创 jni
http://bbs.51cto.com/thread-1316339-1-1.html http://www.android100.org/html/201509/18/182761.html1. gradle.properties android.useDeprecatedNdk=true2. defaultConfig { applicationId "
2016-11-14 14:56:11
445
翻译 设计模式6大原则
单一职责原则(Single Responsibility Principle)定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功
2016-08-19 11:24:05
733
原创 View动画、Drawable动画、Property动画介绍
View动画<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fillAfter="true" android:fromAlpha="1.0" android:repeatCount="2" android:toAl
2016-08-18 12:27:40
758
原创 DrawerLayout 使用
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawerlayout" android:layo
2016-08-11 18:01:52
452
原创 Retrofit2 简述
Retrofit 2 是什么跟Volley,okHttp一样也是一个网络请求的框架,Retrofit只是在OkHttp进行了一次封装,但是Retrofit框架,将网络请求的接口、请求的参数、请求方法、解耦很彻底,适用于Java 和android。Retrofit 2 为什么出现1. 性能对比据说他的效率比volley,okhttp 的还要高。 这是老外做的一个网络请求的性能耗时对比。 2.
2016-08-11 14:31:20
1273
原创 OkHttp和Volley对比
OkHttp物理质量使用OkHttp需要 okio.jar (80k), okhttp.jar(330k)这2个jar包,总大小差不多400k,加上自己的封装,差不多得410k。功能介绍Square 公司开源的 OkHttp 是一个专注于连接效率的 HTTP 客户端。OkHttp 提供了对 HTTP/2 和 SPDY 的支持,并提供了连接池,GZIP 压缩和 HTTP 响应缓存功能。优点支持ht
2016-08-11 14:22:43
25860
原创 生产者消费者
package 生产者消费者;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * Lock 是不变的 所以使用 final * */class works{
2016-08-07 20:31:08
436
1
原创 SocketDemo
package test2;import java.io.BufferedReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.InetAddress;import jav
2016-08-07 20:18:08
506
1
原创 android 6.0 权限
android 6.0开发随记在开发过程中,如果在 AndroidManifest.xml 文件里面配置了android:targetSdkVersion=”23” ,或者Gradle 配置了targetSdkVersion 23 ,没有对这些危险权限进行妥善处理,app将会crash,那么在此提供了一个 eclipse版本和android studio 版的 Demo各一个。 eclipse版本
2016-07-22 17:36:31
2628
原创 gradle 打包
批量修改生成的apk文件名 在我们打包发版的时候,一次性打几十个包,这时候我们就想让生成的apk文件名有区分,比如一眼就能看出这个apk是哪个版本的,哪个渠道的,是哪天打的包等等,这就需要我们在生成apk文件的时候动态修改生成的apk文件名达到这一目的。这里以我们的产品随手记为例:def buildTime() { def date = new Date() def formatt
2016-07-14 19:23:12
520
原创 android 屏幕适配
官网原文:The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels.译文:dp的单位屏幕像素转换很简单: px= dp *(dpi / 160) 。例如,一个240 dpi
2016-07-14 14:04:40
336
原创 Android 6.0 使用 HttpClient
Android 6.0版本已经已经基本将Apahce Http Client 移除出SDK。 那么问题来了,如果我在以前的项目中使用了Apache HttpClient相关类,怎么办呢?请看官网给出的答案Apache HTTP Client RemovalAndroid 6.0 release removes support for the Ap
2016-04-05 22:13:48
727
原创 AIDL 的理解&源码分析
aidl通讯试所有的对象都得实现Parcelable 接口onTransact() Binder 驱动执行完毕时需要回调的方法Proxy 移动端IPC通讯的时候,消息都是通过Binder 进行传递的。 这个代理可以理解为:多个进程之间的代理。 但是个人理解为:Android代码 跟底层Binder驱动之间进行通讯时的代理asInterface() 查询本地所有的aidl 接口,
2016-01-26 16:59:14
1225
原创 Handler Looper MessageQueue 的关系
附上一张 Handler Looper MessageQueue 的关系 关系图!
2015-12-24 18:29:34
508
转载 权限大全
访问登记属性android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限获取错略位置android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米获取精确位置
2015-12-17 18:39:21
448
原创 android studio debug
alt+f8 debug时选中查看值 相当于eclipse的 ctrl+shift+i f8相当于eclipse的f6跳到下一步 shift+f8相当于eclipse的f8跳到下一个断点,也相当于eclipse的f7跳出函数 f7相当于eclipse的f5就是进入到代码 alt+shift+f7这个是强制进入代码 ctrl+shift+f9 debug运行java类 ctrl+shif
2015-06-26 12:30:59
783
原创 handler 源码分析
handler Looper 轮询器MessageQueue 消息对象1 主线程在一创建的时候就会调用, public static void prepareMainLooper() {}构造方法。 public static void prepareMainLooper() { prepare(false); synchronized (Loope
2015-06-25 09:54:24
880
原创 j2se 随记
java的运行机制就是将 .java 的文件进行编译,生成.class 字节码文件,然后java虚拟机将家长们文件进行解释释放,并将结果显示出来程序在运行的时候随时都可能产生一些临时数据,而这些数据都是保存在内存单元中的,如果内存一旦不够,随时都可能OOM想使网络中的计算机,能够进行通讯-->通过IP地址可以连接到指定的计算机,但如果想访问目标计算机中的某个程序,还需要指定
2015-06-11 15:53:07
510
原创 学习 ContentProvider
怎么使用安卓的数据库1得继承SQLiteOpenHelper,继承的类需要重写 : 一个默认构造,onCreate,onUpgrade 。3个方法;eg: 默认构造public MyHelper(Context context) { /* * 参数1: Context用来确定数据库存储在哪个路径下 * 参数2: 数据库文件的名字 * 参数3: 一个用来创建Cu
2015-04-11 23:25:57
774
原创 获取泛型类型
Method applyMethod = GenericTest.class.getMethod("applyVector", Vector.class); Type[] types = applyMethod.getGenericParameterTypes(); ParameterizedType pType = (ParameterizedType)types[0]; Sy
2014-11-20 21:09:55
625
转载 android 国外比较火的网站
Android现在是一个非常流行的移动操作系统。这个小小机器人创建一个大大的世界。许多开发商也致力于Android开发。对于新手和专家,你都要保持你技术储备的更新,知道在Android社区中的最新头条。所以我们推荐一些值得开发人员收藏的Android相关的网站!新闻类Android人:趣味性强,而且及时更新Android周刊:专门服务Android开发者的新闻周刊我
2014-10-28 16:35:09
2668
原创 android多张sd卡的访问方式
StorageManager sm = (StorageManager) getSystemService(STORAGE_SERVICE);// // 获取sdcard的路径:外置和内置try {String[] paths = (String[]) sm.getClass().getMethod("getVolumePaths", null).invoke(sm, null);
2014-10-28 11:02:29
755
原创 android 逆向工程 smail 语法学习
众所周知,android 是开源的,现在市场上反编译别人的劳动果实的人也不少,所以我们也是有必要学习下smail语言,(就是android工程反编译后出的语法语音),看看改怎么给我们的代码 “埋雷” ,才能更好的保护好我们自己的劳动成果。接下来就让我们来学习下吧~!(事先声明:本人也是初学smail语言,有介绍不当的地方还请海涵,并请指出,大家一起学习)==================
2014-09-18 19:11:24
3379
原创 单例设计模式和访问权限的理解
一个类只允许有一个对象,保证所有引用的对象都是同一个对象。 因为只允许存在一个对象,则不允许在外面直接new出新的对象,所以应该把构造器设为private,。 在类内定义一个公开的静态方法,让使用者进行调用,通过该方法去获得一个实例。 例: public calss Singleton{
2013-07-31 14:28:43
1205
原创 面向对象理解
类和对象:类:主观抽象,是对象的模板,可以实例化对象 习惯上类的定义格式: package xxx; import xxx; public class Xxxx{ 属性 ······; 构造器 ······; 方法 ······; } 定义属性:实例变量 格式:[ 修饰符 ] 类
2013-07-31 14:28:03
714
原创 接口的理解
修饰符abstract:抽象的,定义框架不去实现,可以修饰类和方法 abstract修饰类: 会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型 抽象类就相当于一个类的半成品,需要子类继承并覆盖其中的抽象方法,这时子类才又创建实例的能力,如果子类没有实现父类的抽象方
2013-07-31 14:26:56
928
原创 集合心得
集合:保存多个其他对象的对象,不能保存简单类型List:有序(存放元素的顺序),可重复的集合 ArrayList:实质就是一个会自动增长的数组 查询效率比较高,增删的效率比较低,适用于查询比较频繁,增删动作较少的元素管理的集合。 加载大批量的数据时,先进行手动扩容(就是调用ensureCapacity(int minCapacity)方法),这样可以提高效率。
2013-07-31 14:26:00
687
原创 内部类理解
内部类:定义: 定义在另外一个类中的类,就是内部类。 编译后生成的两个独立的类:Outer.class 和Outer$Inner.class。 内部类的分类: 静态内部类:静态内部类定义在类中,任何方法外,用static修饰 静态内部类只能访问外部类的静态成员。 在外部类的外部,要创建一个静态内部类对象不需要外部类对象: Outer.Inn
2013-07-31 14:24:55
789
原创 异常处理理解
异常:异常的分类 Java会将所有的异常封装成对象,其根本父类为Throwable。 Throwable有两个子类:Error 和Exception。 Error:一个Error对象表示一个程序错误,指的是底层的低级的不可恢复的严重错误 遇到Error,程序一定会退出,因为已经失去了运行所必须的物理环境。 对于Error我们无法进行处理,因为我们是通过
2013-07-31 14:24:13
792
原创 图形话界面理解
图形界面:AWT:抽象窗口工具(Abstract Window Toolkit) 组件:图形界面中所有能看到的,比如按钮等。 容器:用来管理其他组件的对象 布局管理器:布置组件在容器中的位置和大小 Swing:AWT的一个增强版 构造图形界面的步骤: 选择一个容器 设置容器的布局管理器 向容器中添加组件 事件的监听 容器(
2013-07-31 14:23:04
750
原创 多线程理解1
多线程:进程与线程: 进程:同一个操作系统中执行的一个子程序,包含了三部分虚拟CPU、代码、数据 多进程:同一个操作系统中执行的多个并行的子程序。可以提高cpu的使用率 线程:在同一个进程当中执行的子程序流 多线程:同一个进程当中并发执行的多个子程序流。可以提高cpu的使用率 进程与线程的区别: 进程有独立的进程空间,进程中的数据存放空间(堆空间和栈空间)
2013-07-31 14:21:30
648
原创 多线程理解2
多线程: 多线程的同步: 多线程并发访问同一个对象(临界资源),如果不对线程进行同步控制,破坏了原子操作(不可再分的操作),则会造成临界资源(两个线程同时访问的资源)的数据不一致。 每一个对象都有一个互斥的锁标记和一个锁池。当线程拥有这个对象的锁标记时才能访问这个资源,没有锁标记便进入锁
2013-07-31 14:19:34
746
原创 IO流理解
I/O流 流的概念:程序与数据来源之间的桥梁 流的分类: 按数据方向分:输入流和输出流 输入流:InputStream/Reader OutputStream/Writer
2013-07-31 14:18:32
803
原创 网络编程心得
android培训、java培训、网络编程: 多线程+网络: 1、服务器端的等待客户连接代码( while(true) ),服务器端与单个客户端交互的代码放入线程体( run ) 2、客户端如有其他要求,与服务器交互的代码也要放入线程体 3、ServerSocket和Sock
2013-07-31 14:15:18
884
java心得和笔记
2013-08-06
桌球城管理系统
2013-03-24
banner 广告条
2015-06-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人