使用manifestPlaceholders替换变量

在项目中,我们有时会需要根据不同的项目环境,使用不同的项目变量,比如说,我在测试环境中需要我的app访问的服务器地址是测试服务器上,而正式发布下的app需要访问正式服务器。在这种情况下,我们可以将这个变量放在AndroidManifest文件中,根据不同的编译类型生成服务器指向不同的app。 实现 在之前版本的gradle中,大部分的思路都是在AndroidManifest中定义一个变量,然后在编

Android平台的崩溃捕获机制及实现

作者简介:贾志凯,Testin崩溃分析(http://apm.testin.cn/)项目研发工程师,负责客户端SDK相关技术研发工作。5年移动互联网开发经验,曾任职于中科院、Symantec、Opera,对移动App的测试、分析有较深入的研究。 Android系统碎片化造成应用程序崩溃严重,在模拟器上运行良好的程序安装到某款手机上说不定就会出现崩溃的现象。而且,往往都是程序发布之后在用户端出现了崩

Android 工程引用其他Library工程时的R.id问题

A为普通Android工程B为设置了is Library的工程,B中有使用R.id,当A工程引用了B工程时会在A工程的gen目录中生成B的R文件,里面也包含了A的R文件中的内容,但是当B的id定义在layout文件中时需要注意layout的名称,如果A下有个main.xml的layout,B下也有个main.xml的layout,那么A编译时就会将B的main.xml中的所有id忽略,导致混淆报错

2016移动开发技术巡礼(by移动开发前线)

目录 前言 平台篇 iOS平台 Android平台 iOS开发技术篇 Android开发技术篇 跨平台技术篇(React Native、Weex、微信小程序) 热门行业技术篇(直播、VR/AR) 前言 2017年就要来了,过去的一年里你是否疏于学习,欠下技术债呢?如果答案是肯定的,希望本文能让你在学习上少走一点弯路。 2016年对于移动开发领域来说是颇受冲击的一年,Native开发面临着React

Android5.0以上为View点击添加Ripple波纹效果

MD的特色之一就是”有意义的动画效果”,让动画符合物理世界的规律,而不是杂乱无章,华而不实。 点击事件产生的波纹效果就是其中之一。 那么,先让我们看一下什么是波纹效果: touch_feedback.gif 可以看出,点击变得更具有质感而不是简单的使条目变色。 让我们在RecyclerView上做下实验(实际上Button、TextView和ListView等都是一样的方法

Android Toolbar填坑指南

随着Android设计规范的迭代更新,我们对Android App的视觉印象不再是傻大黑粗,而Material Design的出现让Android App也可以变得十分精美,无论是界面设计还是过渡动画都让人耳目一新。传送门:Google官方介绍:material design specification ,中文翻译版:Material Design 中文版。 由于历史遗留问题,项目中依然使用自定义

Android dex分包方案

当一个app的功能越来越复杂,代码量越来越多,也许有一天便会突然遇到下列现象: 1. 生成的apk在2.3以前的机器无法安装,提示INSTALL_FAILED_DEXOPT 2. 方法数量过多,编译时出错,提示: Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xffff]: 65536