自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 收藏
  • 关注

原创 iOS模拟器找不到证书?

在模拟器里面怎么都找不到刚刚安装的Charles证书。解决办法:1.把证书下载到本地(保存到桌面),使用命令安装证书image.png2.使用如下命令安装证书:xcrun simctl keychain booted add-root-cert <your_certificate>例如:xcrun simctl keychain booted add-root-cert /Users/xxx/Desktop/charles-ssl-proxying-c

2022-04-06 09:57:23 526

转载 iOS gcd线程死锁问题 案例分析i

同步异步决定是否具备开启线程的能力串行并行决定代码执行的先后顺序先看下这几个场景,每个场景中的代码执行后会打印什么,为什么?场景一:#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after.

2021-02-26 18:20:06 385

原创 使用jenkins自动化构建测试打包apk

1、下载Jenkins并安装官网下载地址:https://jenkins.io/download我们下载上图所示Window版本,下载下来是个.zip的压缩包,我们解压一下会得到一个安装文件,我们双击安装,一直Next,即可安装完成。2、Jenkins配置安装完jenkins会自动在浏览器中打开如下页面:提示说密码在C:\Program Files (x86)\Jenkins\...

2019-12-10 15:49:57 448

原创 在mac上配置Jenkins自动化打包

之前使用jenkins安装包配置过Jenkins,但是配置好之后因为使用安装包安装的jenkins是在机器上新建的账户,所以在配置证书时比较麻烦,会有权限问题,必须把证书和描述性文件拷贝到jenkins账户下才可以,最近使用brewinstall安装jenkins感觉比较方便,可以共用系统的证书和描述性文件1.安装之前先检查是否装有Jenkins依赖的java环境,Jenkins依赖的是JD...

2019-12-09 16:49:09 1232

原创 Android 导航烂隐藏方法,官方样例

2019-10-16 14:54:38 133

原创 Android 动态创建渐变

Android Shape使用场景:1. 圆角实现2. 实现有边框,有填充的背景3. 实现一个渐变的颜色一般情况上面三种情况我们会选择android的shape,下面分别介绍shape的静态使用和动态使用1. shape的静态使用在drawable中创建一个xml文件,在布局文件中直接引用这个xml文件即可<?xml version="1.0" encoding="...

2019-04-25 15:13:18 740

原创 Gradle学习系列

http://www.cnblogs.com/davenkin/p/gradle-learning-1.html

2019-03-12 17:14:15 110

原创 Groovy之task语法

任务入门定义任务任务属于一个Project对象,并且每个任务都可以执行task接口。定义一个新任务的最简单方式是,执行将任务名称作为其参数的任务方法:task hello其创建了任务,但当你执行时,它不会做任何事情。为了创建一个有用的任务,你需要添加一些动作。初学者通常会犯的一个错误是像下面这样创建任务:task hello{ println 'Hello , worl...

2019-03-12 16:58:42 2759

原创 如何在AndroidStudio中自定义Gradle插件(二)

上一篇文章中我们介绍了Gradle是一个构建工具,它是用来帮助我们构建app的,构建包括编译、打包等过程。我们可以为Gradle指定构建规则,然后它就会根据我们的“命令”自动为我们构建app。有些时候,我们会有一些个性化的构建需求,比如我们引入了第三方库,或者我们想要在通用构建过程中做一些其他的事情,这时我们就要自己在系统默认构建规则上做一些修改。这时候我们就要自己向Gradle”下命令“了...

2019-03-12 16:27:04 358

原创 在AndroidStudio中自定义Gradle插件,并上传至maven?(一)

一、什么是Gradle简单的说,Gradle是一个构建工具,它是用来帮助我们构建app的,构建包括编译、打包等过程。我们可以为Gradle指定构建规则,然后它就会根据我们的“命令”自动为我们构建app。Android Studio中默认就使用Gradle来完成应用的构建。有些同学可能会有疑问:”我用AS不记得给Gradle指定过什么构建规则呀,最后不还是能搞出来个apk。“ 实际上,ap...

2019-03-11 16:16:03 1137

原创 如何将将自己混淆的jar或者aar上传到jcenter?

此项目基于Github Novoda修改而来。 改进点:在publish内新增archivesPath参数,可将指定的jar包或者aar包放在此目录下,会指定上传此目录内的压缩包。这样我们便可以很容易上传自己生成的jar,比如混淆过的。新增依赖1.根目录下的build.gradle中加入上传开源库的依赖:classpath 'com.aaron.gradle:bintray-...

2019-02-22 18:02:18 632

转载 常用 Git 命令清单

常用 Git 命令清单我每天使用 Git ,但是很多命令记不住。一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库$ ...

2018-04-26 17:08:37 657

原创 Android资源混淆

Android资源混淆工具:https://github.com/shwenzhang/AndResGuard/blob/master/doc/how_to_work.zh-cn.md打包时的:用到的签名设置

2018-01-31 16:48:06 292

原创 android反射机制

一、Java反射基础介绍.详细请参考来源网站http://blog.163.com/ahszrj123@126/blog/static/109529029201261473243868/反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在计算机科学领域,反射是一类应用,它们能够自描述和自控制。这类应用通过某种机制来实现对自己行为的描述和检测,并能根据自身行为的状态和结果,调整

2016-12-29 13:45:03 346

原创 android动态加载外部类

基本信息 Author:kaedeaGitHub:android-dynamical-loading我们很早开始就在Android项目中采用了动态加载技术,主要目的是为了达到让用户不用重新安装APK就能升级应用的功能,这样一来不但可以大大提高应用新版本的覆盖率,也减少了服务器对旧版本接口兼容的压力,同时如果也可以快速修复一些线上的BUG。 这种技术并不是常规

2016-12-29 13:28:32 1312

原创 Android 自定义View 需要知道的几点

1、让View支持wrap_content       这是因为直接继承View或者Viewgroup的控件,如果不在onmesure对wrap_content做特殊处理,那么当外界在布局中使用wrap_content时就无法达到预期的效果。    2、如果有必要,让你的View支持padding       这是因为直接继承View的控件,如果不在draw方法中处理padding,那

2016-12-21 13:54:44 388

原创 使用nineoldandroid.jar包 简单实现全屏滑动

下面代码中ViewHelper需要用到nineoldandroid.jar。@Overridepublic boolean onTouchEvent(MotionEvent event) { int x =(int) event.getRawX(); int y =(int) event.getRawY(); switch (event.

2016-12-20 17:01:31 505

原创 Android的GestureDetector

手势检测,用于辅助检测用户的单机、、滑动、长按、双击等行为。要使用GestureDetector也不复杂。   首先,需要创建一个GestureDetector对象并且实现onGestureListner接口,根据需要我们还可以实现OnDoubleTapLinster从而能够监听双击行为:GestureDetector gestureDetector=new GestureDetect

2016-12-20 14:20:05 289

原创 Android Fragment中onActivityResult()方法获取不到返回数据或者无响应的解决办法

今天在项目中碰到一个需求,需要在Fragment中跳转到一个新的Activity之后在Fragment获取到新的这个Activity返回的数据,今天一直都无法获取返回的数据,在网上查了很久的资料后发现原来是这个项目的上一个逗比Coder少写了一行代码,真想分分钟拍死TA ( ▼-▼ ) 下面提供遇到问题的解决办法:我们正常情况下会从一个Activity A 跳转到另一个Acti

2016-09-12 15:39:07 1385

原创 mac上更新ruby

因为准备在项目中使用bootstrap,在安装bootstrap过程中提示需要Ruby的版本在1.9.2以上,而目前使用的Ruby版本是Mac系统自带的1.8.7。所以需要对Ruby进行升级。这里使用RVM对Ruby进行升级,升级过程如下:1、安装 RVMRVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)[

2016-08-29 17:20:28 407

原创 Mac OS X 10.11.1 安装cocoapods及使用详解

一、什么是CocoaPods每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供依赖管理的工具,它的名字叫做:CocoaPods。CocoaPods项目的源码 在 Github 上管理。该项目开始于 2011 年 8 月 12 日,经过多年发展,现在已经成为 i

2016-08-29 16:55:02 544

原创 UINavigationBar 使用总结

UINavigationBar是我们在开发过程中经常要用到的一个控件,下面我会为大家介绍一些常用的用法。1. 设置导航栏的标题这个不多说,直接上代码self.navigationItem.title = @"UINavigationBar使用总结";2. 设置导航栏的背景颜色//通过barTintColor来设置背景色 self.navigationContr

2016-08-26 16:05:36 716

转载 Mac OS Xapk反编译工具包的使用

在本文中我将介绍如何在Mac OS X上使用apktool.jar、dex2jar、jd-gui来进行apk的反编译和查看源码。下面会提供每个工具的下载地址。如果觉得下载慢的话,我已经打包好了所有工具,在本文末会附上下载地址。测试环境:OS X EI Capitan 10.11.41.下载脚本右键这里,把它存储命名为apktool,记得不要带后缀,要把后缀去除。2.

2016-07-26 12:01:33 848

原创 Android的 Parcelable和Serializable区别

大家都知道Parcelable和Serializable都能实现序列化并且都可以用intent间的数据传递,那么两者该如何选取呢?         Serializable是JAVA中的序列化接口,其使用起来简单但是开销很大,序列化和反序列化过程需要大量的I/O操作。而Parcelable是Android中的序列化方式,因此更适用于Android平台上,它的缺点就是用起来比较麻烦,但它的效率很

2016-07-15 15:49:39 193

原创 AndroidView事件分发机制(二)

我们接着上次文章说的Android的View分发机制。           首先我们再举一个栗子:           当一个点击事件产生之后,他的传递过程遵循如下顺序:Activity->Window->View,即事件总是先传递给Activity,Acitivity再传递给Window,最后window再传递给顶级View,顶级View接收到事件后,就会按照事件分发机制去分发事件。再考

2016-07-14 17:02:52 408

原创 Android View的事件分发机制(一)

开发了Android2年了吧 ,开发经验确实很多了,但是说实话底层的东西知道的还是略少,今天就把我看到的有关Android View的点击事件分发和大家讲一下        在介绍点击事件的的传递规则之前,首先我们要明白我们要分析的对象就是MotionEvent,即点击事件。所谓的点击事件分发其实就对MotionEvent事件的分发过程,即当一个MotionEvent产生以后,系统需要把这个事

2016-07-14 11:40:52 254

转载 Android实战技巧:ViewStub的应用

在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Infl

2016-06-24 16:50:56 194

原创 Android studio编译问题

当Android Studio中编译java方面的代码,出现类似的警告:有关详细信息, 请使用 -Xlint:deprecation 重新编译。有关详细信息, 请使用 -Xlint:unchecked 重新编译。时,去项目对应的build.gradle中添加配置:?1234567

2016-06-24 11:39:06 360

原创 IOS开发常用宏定义

//-------------------获取设备大小-------------------------  //NavBar高度  #define NavigationBar_HEIGHT 44  //获取屏幕 宽度、高度  #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)  #define SCREE

2016-05-06 15:56:02 233

原创 Android AIDL 进程之间的通信

关于IPC应该不用多介绍了,Android系统中的进程之间不能共享内存,那么如果两个不同的应用程序之间需要通讯怎么办呢?比如公司的一个项目要更新,产品的需求是依附于当前项目开发一个插件,但是呢这个插件功能以及界面比较复杂,不能和当前项目在一个进程中,同时呢,还要用到当前项目中已经写好了的一些东西,那么因为新开发的依附于当前项目的插件和当前项目不是一个进程,因此不能共享内存,就出现了问题,于是,需要

2016-04-24 10:39:51 638

原创 Android系统图册更新保存的图片

Adnroid中保存图片的方法可能有如下两种:第一种是自己写方法,如下代码:123456789101112131415161718public static File saveImage(Bi

2016-04-15 16:49:13 529

原创 ios oc 类之间相互依赖 关于import和@class的区别

1.import会包含这个类的所有信息,包括实体变量和方法,而@class只告诉编 译器,声明的类的名称,至于这些类是如何定义的,暂时不用考虑,后面会再告诉你,所以在头文件中如果用@class声明某个类后,在.m的实现中如果用到声明类的具体方法或变量时还得再#import类  2.在.h头文件中进行声明时用#import的话,如果100个头文件都#import同一个头件,或者这些文件是依次

2016-03-09 10:24:25 2861 1

原创 xcode和mac一些快捷键设置

1. 文件CMD + N:新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD + SHIFT + S: 另存为CMD + W: 关闭窗口CMD + SHIFT + W: 关闭文件2. 编辑CMD + [: 左缩进CMD + ]: 右缩进CMD + CTRL + LEFT: 折叠CMD + CTRL + RIGHT: 取消

2016-02-26 17:03:42 315

原创 Android代码混淆常用设置

* 配置签名信息* 配置ProGuard在ProGuard中添加proguard.config=proguard.cfg运行混淆器之后输出的文件有:dump.txt   描述.apk包中所有class文件的内部结构。mapping.txt  列出了源代码与混淆后的类,方法和属性名字之间的映射。这个文件对于在构建之后得到的bug报告是有用的,因为它把混淆的堆栈跟踪信

2016-02-26 17:03:39 862

原创 如何让iOS从容地崩溃

虽然大家都不愿意看到程序崩溃,但可能崩溃是每个应用必须面对的现实,既然崩溃已经发生,无法阻挡了,那我们就让它崩也崩得淡定点吧。IOS SDK中提供了一个现成的函数 NSSetUncaughtExceptionHandler用来做异常处理,但功能非常有限,而引起崩溃的大多数原因如:内存访问错误,重复释放等错误就无能为力了,因为这种错误它抛出的是Signal,所以必须要专门做Signal处理。首

2016-02-26 17:03:37 370

原创 MAC环境下&nbsp;&nbsp;svn的使用

在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简单的配置。我们首先来看下,如何在Mac环境下搭建svn服务器端环境。创建代码仓库,用来存储客户端所上传的代码我先在/User/apple目录下新建一个svn目录,以后可以在svn

2016-02-26 17:03:34 359

原创 iOS&nbsp;&nbsp;cookie&nbsp;的使用(相当重要)

一. CookieCookie是在客户端存储服务器状态的一种机制,Web服务器可以通过Set-Cookie或者Set-Cookie2HTTP头部设置Cookie。Cookie可以分为两类,会话Cookie和持久Cookie,会话Cookie是临时Cookie,当前会话结束(浏览器退出)时Cookie会被删除。持久Cookie会存储在用户的硬盘上,浏览器退出,然后重新启动后Cookie仍然

2016-02-26 17:03:26 320

原创 iOS&nbsp;播放系统音效,自定义音效

播放系统音效、自定义音效工具类需求大致分为三种:1.震动2.系统音效(无需提供音频文件)3.自定义音效(需提供音频文件)我的工具类的封装: //  //  WQPlaySound.h  //  WQSound  //  //  Created by 念茜 on 12-7-20.  //  Copyright (c) 2012

2016-02-26 17:03:24 370

原创 iOS常用控件尺寸大合集

元素控件尺寸(pts)Window(含状态栏)320x 480StatusBar的高度20NavigationBar的高度44含Prompt的NavigationBar的高度74NavigationBar的图标20×20(透明的png)ToolBar的高度44ToolBar的图标20×20(

2016-02-26 17:03:21 344

原创 No&nbsp;architectures&nbsp;to&amp;nb…

出现的原因:armv7s是应用在iPhone 5 A6 的架构上的解决的方式:1,在Project target里“Architectures”设置为“Standard(armv7,armv7s)”2,修改在Project target里“Build Settings”的“ValidArchitectures”添加“i386”和“armv7”(Xcode4.6以上版本不再支

2016-02-26 17:03:19 333

空空如也

空空如也

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

TA关注的人

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