自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 Day08-Object-C Block与协议

1. 延展: Extension1). 是1个特殊的分类, 所以延展也是类的一部分2). 特殊之处: a. 延展这个特殊的分类没有名字 b. 只有声明没有实现, 和本类共享1个实现2. 延展的语法 语法: @interface 本类名() @end 没有实现, 和本类共享1个实现3.为类添加延展的步骤 只有1个.h文件, 文件名称:...

2018-07-11 09:30:02 188

原创 Day07-Object-C ARC与分类

1. 自动释放池1. 自动释放池的原理 存入到自动释放池中的对象, 在自动释放池被销毁的时候, 会自动调用存储在该自动释放池中的所有对象的release方法. 可以解决的问题: 将创建的对象, 存入到自动释放池中, 就不再需要手动的release这个对象了 因为池子销毁的时候, 就会自动的调用池中所有的对象的release 自动释放池的好处:将创建的对象...

2018-06-24 13:35:48 196

原创 Android可执行文件

1. DEX Dalvik VM executes的缩写2. Android程序的生成步骤 1).打包资源文件, 生成R.java文件, 使用aapt位于Android-sdk\platform-tools下. 2).处理aidl文件,生成相应的Java文件,使用的是aidl工具位于Android-sdk\platform-tools aidl: android int...

2018-06-18 16:22:10 831

原创 如何分析Android程序

1.反编译apk文件 下载apktool 执行apktool d[encode] [opts] <file.apk> [<dir>] 如 apktool d test.apk outdir 2. 分析apk文件 反编译apk后, 会在设定的outdir目录下生成相应文件, 其中smali目录存放了程序所有的反汇编源码...

2018-06-16 14:39:56 284

原创 Day06-Object-COC特有语法

1. 内存管理概述1.内存管理内存的作用:存储数据1). 如何将数据存储到内存之中 声明1个变量, 然后将数据存储进去2). 当数据不再被使用的时候, 占用的内存空间如何被释放2.内存中的五大区域栈: 局部变量, 当局部变量的作用域被执行完毕之后, 这个局部变量就会被系统立即回收堆:OC对象, 使用C函数申请的空间BSS段: 未初始化的全局变量, 静态变量, 一旦初始化就...

2018-06-15 10:20:50 269

原创 Effective Java摘录(三)

7.方法38.检查参数的有效性 在方法执行它的计算任务之前,应该先检查它的参数 在设计方法时,应该使他们尽可能地通用,并符合实际的需要 每当编写方法或者构造器时,应该考虑它的参数有哪些限制,应该把这些限制写在文档中,并在方法体的开头处,显示的检查来实施这些限制39.必要时参数进行保护性拷贝保护性拷贝时在检查参数的有效性之前进行的,并且有效性检查是针对拷贝之后的对象,...

2018-06-10 16:55:34 131

原创 Effective Java摘录(二)

4.类和接口13.使类和成员的可访问性最小化 良好的设计模块会隐藏所有的实现细节,把它的API与它的实现清晰的隔离开来.然后模块之间只通过它们的api进行通信, 一个模块不需要知道其它模块的内部工作情况.封装 它可以有效地解除组成系统的各模块之间的耦合关系,是的这些模块可以独立地开发测试优化 使用 理解 和修改;虽然信息隐藏本身不会带来更好的性能, 但是一旦完成一个系统,通过剖...

2018-06-09 13:15:27 116

原创 Day05-Object-COC特有语法

1. 继承的本质1. 创建1个对象, 这个对象在内存中是如何分配的 1). 子类对象中有自己的属性和所有父类的属性 2). 代码段中的每个类都有1个叫做isa的指针, 这个指针指向它的父类, 一直指到NSObject [p1 sayHi];//假设p1是Person对象 先根据p1指针找到p1指向的对象, 然后根据对象的isa指针找到Person类 搜索...

2018-06-08 10:23:45 170

原创 Day04-Object-C继承与多态

1.Xcode文档安装离线安装目录:/Applications/Xcode.app/Contents/Developer/Documentation/DocSets2. static关键字1. c语言中的static a. 修饰局部变量 b.修饰全局变量 c.修饰函数2. OC中的static关键字 a. static不能修饰属性, 也不能修饰...

2018-06-07 11:15:37 178

原创 Day03-Object-C封装

1. 异常处理1. 什么是错误? 一般情况下, 错误指的是我们写的源代码不符合语法规范,然后编译报错 后果:程序无法编译 解决:将不符合语法规范的代码改为符合语法规范的代码2.什么是Bug? 程序可以编译 链接 执行 程序执行的结果并不是我们所预想的那样 解决:通过调试寻找发生Bug的原因3.什么是异常? 程序可以编译 链接 执行 ...

2018-06-05 11:26:03 169

原创 Day02-Object-C类与对象

1.对象在内存中的存储1. 内存中的五大区域 栈 存储局部变量 堆 程序员手动申请的字节空间 malloc calloc realloc 函数 BSS段 存储未被初始化的全局变量 静态变量 数据段(常量区) 存储已被初始化的全局 静态变量 常量数据 代码段 存储代码 存储程序的代码2. 类加载 1). 在创建对象的时候, 肯定是需要访问类的...

2018-06-04 10:31:12 160

原创 Effective Java摘录(一)

一、引言清晰性和简洁性最为重要:模块的用户永远也不应该被模块的行为所迷惑(那样就不清晰了);模块要竟可能的小,但又不能太小(模块是指任何可重用的软件组件,从单个方法,到包含多个包的复杂系统,都可以是一个模块)。代码应该被重用,而不是被拷贝。模块之间的依赖性应该可能地降到最小。错误应该尽早被检测出来,最好是在编译时刻。始终关心如何编写出清晰、正确、可用、健壮、灵活和可维护的程序来。Java...

2018-06-03 11:45:40 124

原创 Day01-Object-C语法基础

1. C程序补充··· int main(int argc, const char * argv[]){ printf(“你好%s”,argv[1]); return 0; } ··· 1. 返回值代表程序的结束状态 0 代表正常结束, 非0代表非正常结束 2. 参数 argv数组的第0个元素的值, 是这个正在运行的程序的路径。 ...

2018-06-02 15:28:53 170

原创 retrofit解析

retrofit解析1.retrofit build /** * Set the API base URL. * * @see #baseUrl(HttpUrl) */ public Builder baseUrl(String baseUrl) { checkNotNull(baseUrl, "baseUrl == null");

2017-09-29 16:49:49 221

原创 Multidex详解

Multidex详解1.使用1.在项目gralde配置中增加依赖 compile "com.android.support:multidex:1.0.2"2.在AndroidManifest.xml中声明 application为MultiDexApplication, 或者在自定义的application中,重写如下方法 protected void attachBaseContex

2017-09-27 11:22:15 710

转载 循环array

public class CircularArray<E> {// 一个循环array private int mNextWriter; private boolean mHasWrapped; private int mMaxCount; Object mList[]; public Circular(int count){ mMaxCoun

2017-03-30 13:55:57 261

转载 Android 实现不可变得list

public class ImmutableList<T> extends AbstarctList<T> implements RandomAccess { private final T[] views; // 通过使用final数组来保存数据, 并实现了list接口, 这样可以直接用做list, 这种方式比使用Collections.unmodifiableList轻量许多, 不去重写

2017-03-28 10:18:16 611

转载 android click防止多次重复点击

public abstract class DebouncingOnClickListener implements View.OnClickListener{ private static boolean enabled = true;// 默认应是可以使用的 pirvate static final int DELY = 300; private static final

2017-03-28 10:07:34 656

原创 2016-9-29

2016-9-291.Material Design控件1.AppBarLayout 继承LinerLayout,支持手势滑动操作, 必须作为Toolbar的父布局2.ToolBar 代替ActionBar的一个标题栏控件,能将背景拓展到状态栏,要把主题改为NoActionBar; 可以设置”标题”,”副标题”,”Logo”,”NavigationIcon”以及”Menu菜单”,也可以自定义布局

2016-10-08 13:25:27 282

原创 2016-9-28

2016-9-281.gradle配置(部分)android { compileSdkVersion 19 buildToolsVersion "19.1.0" defaultConfig { minSdkVersion 8 targetSdkVersion 19 } //签名 signingConfigs {

2016-10-08 13:24:47 303

原创 2016-9-27

2016-9-271.adb常用命令1. 显示系统中全部Android平台: android list targets2. 显示系统中全部AVD(模拟器): android list avd3. 创建AVD(模拟器): android create avd --name 名称 --target 平台编号4. 启动模拟器: emulator -avd 名称 -sd

2016-10-08 13:24:24 263

原创 2016-9-23

2016-9-231.view移除背景后再设置背景导致padding无效public void setBackgroundDrawable (Drawable background)Added in API level 1This method was deprecated in API level 16. use setBackground(Drawable) insteadpublic vo

2016-09-26 19:00:25 281

原创 2016-9-22

2016-9-221.SwipeRefreshLayout调用//设置下拉出现小圆圈是否是缩放出现,出现的位置,最大的下拉位置mySwipeRefreshLayout.setProgressViewOffset(true, 50, 200);//设置下拉圆圈的大小,两个值 LARGE, DEFAULTmySwipeRefreshLayout.setSize(SwipeRefreshLayout.

2016-09-26 18:59:48 248

原创 2016-9-20

2016-9-201.监听Gps private final ContentObserver mGpsMonitor = new ContentObserver(null) { @Override public void onChange(boolean selfChange) { super.onChange(selfChange);

2016-09-22 19:17:52 227

原创 2016-9-19

2016-9-191.textview长按复制1.使用EditText将属性设置为 android:editable=”false”2,使用OnLongClickListener给TextView添加OnLongClickListener事件,长按时弹出自定义 “复制” 菜单(比如PopupWindow做弹出菜单). 点击”复制” 就去获取TextView的内容.ClipboardManage

2016-09-22 19:17:21 477

原创 2016-9-18

2016-9-181.grdile配置ndkhttp://blog.csdn.net/sbsujjbcy/article/details/484695692.android工具类https://github.com/Blankj/AndroidUtilCode/blob/master/README-CH.md3.getStringString getString(int resId, Object.

2016-09-19 17:18:04 199

原创 2016-9-14

2016-9-141.rxjava实现消息通知public class RxBus { private final Subject<Object, Object> mBus; private final ConcurrentHashMap<Class<?>, Object> mStickyEventMap; private RxBus() { /**

2016-09-14 20:16:53 349

原创 2016-9-13

2016-9-131.HttpURLConnection简单使用 public static final String DEF_CHATSET = "UTF-8"; public static final int DEF_CONN_TIMEOUT = 30000; public static final int DEF_READ_TIMEOUT = 30000; pub

2016-09-13 20:09:10 229

原创 2016-9-12

2016-9-121.android 6.0运行时权限1.需要设置targetSdkVersion>=23时, 才会使用此功能, 如果设置targetSdkVersion<=22即使手机是6.0的系统也仍是采用旧的权限管理策略2.6.0中把权限分成两类: 一. 不涉及用户隐私的普通权限,需要的AndroidManifest.xml声明,使用的是旧的权限管理策略,如:网络 蓝牙等

2016-09-13 08:59:27 249

原创 2016-9-10

2016-9-101.Android studio ApplicationTestCase单元测试1.测试方法必须以test开头2.android studio 导出aar文件1.创建公用库File->New Module->Android Library, 然后一直下一步2.导出为aar导出之前先把该库下的build.grdle中的下面内容中的minifyEnable改为true(启用混淆)

2016-09-10 16:27:37 210

原创 2016-9-9

2016-9-81.TextView设置ClickableSpan1.设置后点击文字时会出现一个背景:这个背景颜色为HighLightColor,在4.0以上默认淡绿色,以下为黄色,可通过设置textview.setHighlightColor(getResources().getColor(android.R.color.transparent));设置为透明色2.修改选中的文字颜色publi

2016-09-09 18:56:05 205

原创 2016-9-7

2016-9-71.Android plugin is not compatible with Gradle由上图可以看出,不同的Android Gradle Plugin版本仅支持对应的Gradle版本.2.1.0的Gradle Plugin仅支持Gradle 2.10 - 2.132.activity的四种启动模式1.default: 系统默认启动模式, 每次启动activity都创建新的实例

2016-09-09 18:55:29 197

原创 2016-9-6

2016-9-61.android增量更新基本步骤1. 获取补丁 服务端完成2. 打补丁 获取应用的安装路径(getPackageManager().getApplicationInfo(packageName, 0).sourceDir),拷贝到sd卡,合并差分包到apk3. 安装生成的新的版本2.在android上Canvas画出平滑图形在Canvas绘制图形有两种方式:1. 直接在Ca

2016-09-09 18:54:44 232

原创 2016-9-5

2016-9-51.Android内存溢出的几种情况Android中的内存溢出基本发生在以下三种情况: 1.成员或全局静态对象或单例对象对activity的强引用 2.不在activity生命周期内的线程对activity的强引用 3.activity中生命周期不可控的内部类或匿名类对activity的隐式引用 在activity中引用着大量的view和其他资源,如果在o

2016-09-09 18:54:11 283

原创 2016-9-2

2016-9-21.Android webview设置背景为透明色设置关闭硬件加速 android:layerType = “software”设置背景透明 webview.setBackgroundColor(0);设置背景透明度 webview.getBackground().setAlpha(0);2.监听webview内容渲染完成重写webview的onDraw(Canvas can

2016-09-09 18:53:44 241

原创 在Assets文件夹中放入.sql或.db文件实现创建SQlite表的操作

在Assets文件夹中放入.sql或.db文件实现创建SQlite表的操作 /** * 读取数据库文件(.sql),并执行sql语句,sql文件中不能有注释等其他语句,只能是纯sql语句,单个sql语句不能太长(执行条目在500左),不然会报 too many terms in compound SELECT, 在执行sql时要使用事务来加快执行 * */ priv

2016-08-06 22:46:15 895

原创 android InstallApk

android InstallApkpublic class InstallApk extends Activity { static final int REQUEST_INSTALL = 1; static final int REQUEST_UNINSTALL = 2; @Override protected void onCreate(Bundle savedI

2016-07-15 19:30:27 546

原创 整合百度sdk遇到问题

项目需要整合百度定位sdk,把遇到的问题写下来, 希望对其他人有一点帮助1、android studio项目应把百度定位so文件放到armeabi-v7a下一份,不然定位可能返回162错误 2、使用虚拟运营商网络不能定位成功 3、在application中初始化LocationClient,一个应用中只初始化一次定位服务; 4、如非必要,无需在自定义的Service中初始化定位SDK,定位SD

2016-07-07 23:23:42 2770

原创 OkHttp简单封装

OkHttp简单封装public class OkHttpUtil { public static final String CHARSET = "UTF_8"; private static OkHttpClient okHttpClient = null; private OkHttpUtil() { } private static OkHttpClient

2016-07-04 17:04:56 230

原创 zxing生成二维码

zxing生成二维码public class QrCodeUtil { public static Bitmap creaQrCode(String content, int qrWidth, int qrHeight) { return createQrCode(content, "utf-8", Color.BLACK, qrWidth, qrHeight, ErrorC

2016-06-30 20:22:04 437

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除