自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Android RxJava zip 操作符

不说话,直接举例// zip 2 observablesObservable.zip(Observable.just(0), Observable.just(0), BiFunction {t1: Int, t2: Int -> (t1 + t2)})// zip 3 observablesObservable.zip(Observable.just(0), Obser...

2019-04-29 22:02:00 465

转载 Android 使用 NYTimes Stores 缓存 network request

NYTimes Stores 是一个缓存库,在 2017年的 AndroidMakers 大会上被介绍过。https://github.com/NYTimes/Store实现一个 Disk Cache 需要以下几个步骤:在 Retrofit 的 API 下@GET("/v1/events")Single getEventsResponseBody();两点需要注意,一是要...

2018-07-03 23:26:00 215

转载 Android Parcelable using Kotlin

Kotlin 有 extension 可以很方便的让类继承 Parcelable 接口。项目中引入一个较新版本的 Kotlin引入 Kotlin extensionsclasspath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"加入这一段设置androidExtensions {expe...

2018-06-14 16:12:00 228

转载 Android Dagger 2 无法自动生成 Dagger Component

给项目升级 gradle(3.0)和 build(27)后发现 Dagger 2 无法自动生成 Dagger Component 类了。原因竟是我把 :kapt 'com.google.dagger:dagger-compiler:2.13'换成了annotationProcessor 'com.google.dagger:dagger-compiler:2.13'看来 Kot...

2018-03-20 22:59:00 1033

转载 Android RecycleView 的优化

减少条目的 View 的层级。层级越少效率越高,尤其避免使用 weight。用 ConstraintLayout 可以最大程度减少层级。使用 ViewStub。如果某个 view 可能不需要被加载,可以使用 ViewStub 来实现按需加载。开启 Déboguer les conflits GPU / Debug GPU Overdraw,查看各个 View 是否有过度绘制问题。如...

2018-01-31 00:56:00 217

转载 Android RelativeLayout wrap_content 而且 child view 使用 layout_alignParentBottom 时 RelativeLayout 高度会占满...

Android RelativeLayout wrap_content 而且 child view 使用 layout_alignParentBottom 时 RelativeLayout 高度会占满屏幕,因为这两个属性互相冲突以致 RelativeLayout 无法确定自己的尺寸。逻辑性自己想想就明白了。解决办法是换用 FrameLayout,然后 child view 使用an...

2017-11-22 00:48:00 842

转载 Android .9 图片

最初对 .9 图片不是十分理解,一些教程让人摸不到头脑。最近重新研究终于明白了它的原理。其实最重要的一点记住就可以了,就是 .9 图片的四条黑边的意义,每条黑边的意义都不一样:顶部:在水平拉伸的时候,保持其他位置不动,只在这个点的区域做无限的延伸(拷贝)左边:在竖直拉伸的时候,保持其他位置不动,只在这个点的区域做无限的延伸(拷贝)底部:在水平拉伸的时候,保...

2017-10-17 16:56:00 76

转载 Android sharedUserId 和系统权限

sharedUserId给不同的应用使用同一个 sharedUserId 可以运行在这几个应用间互相访问数据(数据库,SharedPreferences,文件)。sharedUserId 一旦使用后,不可以再更改。使用限制:两个应用ShareUserId相同,包名相同或不同,打包时签名文件必须相同否则,在如下情况下,第二个安装包在安装时会失败,错误为[INSTALL_FA...

2017-08-10 16:35:00 453

转载 Android Dagger 2

Dagger 2 依赖注入1. 基本概念最重要有四个概念,也是四个注解(annotation),Provide,Inject,Module,Component。Provide 是提供者,创建实例。@Providesstatic NetworkApi provideNetworkApi(){  return new NetworkApi();}...

2017-08-08 18:33:00 75

转载 Android Kotlin 文章集合

1. lateinit vs lazy转载于:https://www.cnblogs.com/davesuen/p/7235344.html

2017-07-25 17:22:00 71

转载 Android UI/UX 工具

Zeplin 用于界面图片自动导出。 图标 : https://material.io/icons/转载于:https://www.cnblogs.com/davesuen/p/7150992.html

2017-07-11 15:56:00 257

转载 Android Locale

Locale 是用来适配语言和地区的。在实际使用过程中,如果使用不当还是会出现错误。首先,需要了解的是,Locale 分两种,一种是语言,一种是地区。语言比如英语,地区比如美国。区别显而易见,说英语的不止英国,而美国地区语言为英语。所以使用地区还是语言要根据实际需求进行选择。严格来说,如果针对每个地区进行适配,应该使用地区 Locale。这样适配起来才最准确。Locale 的创建...

2017-05-24 22:14:00 653

转载 Android 流媒体播放 live streaming

安卓支持的协议RTSP (RTP, SDP)HTTP/HTTPS progressive streamingDynamic adaptive streaming on HTTP => MPEG DASHHTTP/HTTPS live streaming => VLS (m3u, m3u8)不支持的协议RTMP (Real Time Messaging Proto...

2017-05-18 21:48:00 505

转载 Android 获取设备dpi

http://dpi.lv/转载于:https://www.cnblogs.com/davesuen/p/6675837.html

2017-04-06 22:44:00 1791

转载 Android Google Analytics

基础知识:一个统计条目包含两类,一种是 screen,另一种是 event。Screen 包括 screen name。Event 包括 category,action,label 和 value 四个信息。其中 value 只能是数值。项目中integrate了GA,碰到过一些问题:1.Too many hits sent too quickly, ...

2017-03-27 22:48:00 335

转载 Android 为库(library)创建不同编译环境

项目中需要导入库,一般有两种情况,一种是直接路径导入,一种是导入库的 aar 文件。1. 设置库项目1. 在库项目的 src 目录下设置 debug 目录,里面可以添加代码或者 res 文件夹。2. 库项目在默认情况下只按照 release 编译。所以需要在 build.gradle 下添加android { // Enable debug build ...

2016-10-18 17:28:00 159

转载 Android 导入 aar 库文件

1. 在需要导入 aar 的 module 目录下创建一个名叫 "aars" 的目录,并把 aar 文件复制到这里。2. 在项目的 build.gradle 文件里添加allprojects { repositories { jcenter() flatDir { dirs 'aars' ...

2016-10-05 07:36:00 309

转载 Android 创建自定义 View 的属性 (attrs) 时需要注意的问题

自定义 View 的属性并不难,可以参照官方的文档https://developer.android.com/training/custom-views/create-view.html但是需要注意一个问题,否则可能浪费很多时间。<resources> <declare-styleable name="AppsControllerBloc...

2016-09-16 22:06:00 325

转载 Android Source 源码已下载但 Android Studio 找不到的解决办法

Android Studio 2.1 reporting in: solved the issue by resetting SDK.Preferences -> Appearance & Behavior -> System Settings -> Android SDK.Click onEditto the right of Android SD...

2016-09-06 15:27:00 353

转载 Kotlin 基本语法

常量 val a: Int = 5变量 var a: Int = 5Any:匹配任何类型?:nullable,比如 a?.toString,如果 a 为 null 不会出错。函数基本结构fun copyAddress(address: Address): Address { val result = Address() // there's no 'new'...

2016-08-02 17:00:00 63

转载 RxJava / RxAndroid

RxJava 是什么RxJava 是函数响应式编程框架,它用观察者设计模式。常用来做异步数据处理,在安卓中用来代替传统的 AsyncTask + Handler 的组合结构。RxJava 架构简洁,扩展性强。基本原理RxJava 框架中包含两个角色,观察者 (Observer) 和被观察者 (Observable)。实际应用中我们常用订阅者 (Subscribe...

2016-07-21 20:38:00 132

转载 Git 常用知识

git 常用命令创建并checkout分支: git checkout -b branch_namegit merge 与 git rebase 的区别git rebase 合并后将形成一条直线的 commit 而 git merge 将形成一个有很多分支的树。rebase 后的结构更简洁。产生冲突后,merge 将不能合并,必须手动解决冲突然后重新合并。而 reb...

2016-07-12 15:29:00 74

转载 Android : M 与 N 的权限管理

从 M 开始,permission 分为Normal permissionRuntime permissionNormal permission 直接在 manifest 里声明就可以用了。android.permission.ACCESS_LOCATION_EXTRA_COMMANDSandroid.permission.ACCESS_NETWORK...

2016-06-23 23:52:00 90

转载 Android 与 iOS 推送 Push Notification 的区别

Android安卓使用 GCM (Google Cloud Messaging) 接收推送,然后应用根据实际情况决定做什么反应,比如显示一个 Notification。所以安卓下,推送 Push 和 消息 Notification 是独立的。当用户紧致消息通知权限的时候,用户无法收到 Notification,但 GCM 消息仍然可以收到。安卓的 Notification 是...

2016-05-18 18:04:00 372

转载 Android : 按 Back 按钮不返回处于后台的 Activity

在一个项目中,我有一种情况下启动一个新 Activity 后,按 Back 按钮时不想返回到后台的 Activity。具体方法是,在启动新的 Activity 的时候: Intent intent = new Intent(this, AuthenticationActivity.class); intent.setFlags(Intent...

2016-05-18 17:46:00 172

转载 Java : java.util.ConcurrentModificationException

在删除 List 元素的时候,要用 Iterator,不要直接遍历 List,否则会出现Fatal Exception: java.util.ConcurrentModificationException。错误 ❌for (String str : myArrayList) { if (someCondition) { my...

2016-05-18 17:22:00 65

转载 Android 色差(尤其白色)的解决办法

Android 中有时出现色差,我碰到的情况是 Galaxy ACE4 中的白色和系统白色不同,所以显示时候颜色不同,很难看。我发现的问题是 Color.white, android.R.color.white, R.color.white 是不同的,具体区别和联系还待测试。解决方案 :在代码中,把出现色差出的view的背景颜色设为 android.R.color.wh...

2016-05-13 22:38:00 721

转载 Android ScrollView 去掉 scrollbar 和 阴影

1. 在 layout 里:android:scrollbars="none"android:overScrollMode="never"2. 代码里/* remove scroll bar */view.setVerticalScrollBarEnabled(false);view.setHorizontalScrollBarEnabled(fals...

2016-03-23 23:23:00 220

转载 Android 载入 HTML

Android 中载入 HTML 有两种方式:1. 用 TextView.setText(Html.fromHtml("<html></html>"));  优点:载入速度快  缺点:不支持所有 html 标签,支持的有:<a href="..."><b><big><blockquote&g...

2016-03-17 00:01:00 126

转载 Android 透明状态栏

在 android 4 系统中可以设置透明状态栏。但在 android 5.0 以上遇到问题。但问题是可以解决的,需要正确的设置 theme。但是需要注意一点,5以上可以修改 status bar 的背景颜色,但不能有和 4.4 一样的半透明渐变效果。所以透明的状态栏下,如果整个页面是白色的,状态栏的图标将不可见。Theme : <style nam...

2016-03-11 19:53:00 57

转载 Robolectric 单元测试中使用 Ressource

单元测试类中:  @RunWith(RobolectricGradleTestRunner.class)  @Config(constants=BuildConfig.class, sdk = 21)  获取 context:  RuntimeEnvironment.applicationbuild.gradle 中:若使用 multidextestCompile 'org.robo...

2016-02-03 22:20:00 108

转载 日期的格式,你用得对吗?

在 iOS 开发中,我碰到了奇怪的问题。[dateFormatter stringFromDate:aDate];dateFormatter 是一个 NSDateFormatter 对象。aDate 是一个 NSDate 对象,它的值为 2015-12-30 00:00。这段代码是把这个 NSDate 转化为 NSString。我获得的结果是让人吃惊的:...

2015-12-24 01:06:00 112

转载 iOS Objective-C 中 bool 与 BOOL 的你不一定知道的事

测试一下这段代码:- (void)test { NSLog(@"this is an attribut: %d", anAttribute); for (int i = 0; i < 5; i++) { BOOL isTest1; if (isTest1 == NO) { NSLog(@"%d...

2015-12-18 16:52:00 118

转载 iOS 获取 UITabViewController 和 UINavigationController 的图标位置

这些图标是放在 UITabBar 和 UINavigationBar 里的。所以只要遍历它们的 subViews,找到类型是 UIButton 的就可以了。所有想获取它们的相对位置很容易。获取到相对位置之后,根据容器位置进行调整就可以了。所以 UITabBar 里图标的位置:CGPoint center = CGPointMake(centerInTab.x ...

2015-12-09 17:11:00 149

转载 iOS 添加 Watch OS 1 应用后无法运行 An error was encountered while running (Domain = LaunchServicesError, Code...

在 iOS 应用基础上我添加了一个 Watch OS 2 应用,运行良好。又加了一个 Watch OS 1 应用,然后就所有 Target 都不能运行了。运行时说An error was encountered while running (Domain = LaunchServicesError, Code = 0)原因 :在 iOS 应用 Target ->...

2015-12-05 00:51:00 123

转载 iOS Apple Watch 开发

1. Watch OS 1 与 Watch OS 2 的区别 :OS 1 中界面运行在手表上,而代码(Extension)运行在手机端;OS 2 是纯正的手表原生(Native)应用由于架构的改变,原来的一些手表与手机的交互方式发生改变。比如 openParentApplication 被 WatchConnectivity类所替代。用 app groups 来共享 NSU...

2015-12-02 17:21:00 155

转载 iOS NSMutableArray "removeObjectIdenticalTo" vs "removeObject"

NSMutableArray 有多种可以删除元素的方法。其中 removeObject,removeObjectIdenticalTo 这两个方法是有区别的。[anArray removeObjectIdenticalTo:anObject];removeObject:anObject 删除所有与 anObject “isEquals” 的元素。remove...

2015-11-19 20:08:00 160

转载 iOS View 外层奇怪的黑线

最近碰到一个问题,当时是为了建了一个能自动适应内容的 Label。根据内容,我计算出需要的尺寸,然后把新尺寸设置给 Label。但是显示的时候,一个奇怪的现象出现了,Label 的顶端总是有一条浅浅的黑线。它并不明显,有点像加了一个 border。原因我费了很大劲才找到,原因其实很简单: -经过计算后获取的尺寸是一个有好几位小数的浮点数,UIView 似乎对如此精度的尺寸不适...

2015-11-17 21:08:00 113

转载 iOS 推送

Apple Push Notification Service(APNs)*********************************************Notification 是一个由 APNs 发来的消息,它包括两个部分:device token 和 payload。device token 是一个识别码,由 APNs 给出。device token 在一台设备上...

2015-11-11 02:04:00 84

转载 Android / iOS 招聘

1. 面试题https://github.com/ChenYilong/iOSInterviewQuestions2. 一些不错的ideaCDI - Développeur iOS/Android – Pureplayer dans la petite annonceCher développeur Mobile, tu es un grand pass...

2015-11-05 00:32:00 97

空空如也

空空如也

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

TA关注的人

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