分类: [Android]

Android Ble蓝牙开发(客户端)

最近项目里面需要集成一个蓝牙的连接功能,作为一枚刚刚毕业不久的新生,大学几年又白过的。只好在几天内搜搜百度,脑补一下。文章部分内容摘至各大Blog,加上本dust的见解,写了一份Client端和Service端的小呆毛。 参考链接–Link:http://m.blog.csdn.net/article/details?id=50504406 先来叨叨下历史 蓝牙我们应该很早就听过,最常见的就是原来我们偶尔通过手机上的蓝牙来传输文件。貌似在低功耗蓝牙(Bluetooth Low Energy)出现之前,蓝牙我们使用的并不多,蓝牙的产品貌似也不是很多。2010年6月30号蓝牙技术联盟推出了低功耗 ......

Android兼容(Nougat-7)-FileProvider

需要阅读官方文档请移步: https://developer.android.com/about/versions/nougat/android-7.0-changes.html 权限更改 Android 7.0 做了一些权限更改,这些更改可能会影响您的应用。 系统权限更改 为了提高私有文件的安全性,面向 Android 7.0 或更高版本的应用私有目录被限制访问 (0700)。此设置可防止私有文件的元数据泄漏,如它们的大小或存在性。此权限更改有多重副作用: 私有文件的文件权限不应再由所有者放宽,为使用 MODE_WORLD_READABLE 和/或 MODE_WORLD_WRITEABLE 而进行的此类尝试将触发 SecurityException。 ......

Android Studio你必须学会的快捷键(Eclipse转AS必看)

前言:从Eclipse转到Android Studio之后,一开始把keymap设置成Eclipse,却发现有些常用的快捷键都失效了,大概是冲突了。想了下,觉得与其重新设置快捷键,不如去适应AS的快捷键,毕竟听说AS新增了好些有用的快捷键。于是把keymap又改回Default。事实也证明,熟悉起来还是挺快的,大概花了两天时间,就能很熟练了。以下是个人整理的Eclipse和AS的常用快捷键对照表,方便刚转AS的小伙伴们快速入手。 功能 Eclipse Android Studio 快速查找类、文件 Ctrl + Shift + T/R Ctrl + N 、Ctrl + Alt + N 查找、替换 Ctrl + F Ctr ......

Java层与Jni层的字节数组传递【适用于其他基本类型数组】

Android开发中,经常会在Java代码与Jni层之间传递数组(byte[]),一个典型的应用是Java层把需要发送给客户端的数据流传递到Jni层,由Jni层的Socket代码发送出去,当然,Jni层也需要把从Socket接收到的数据流返回给Java层。我简单地总结了一下,从Java层到Jni层,从Jni层到JAVA层,各有3种传递方式,下面用代码示例简单地介绍一下。 示例代码的主要文件有两个,一个是Native.java,是Java层的类;另一个是Native.c,是JNI层的文件,关键的地方我都用注释添加到代码中了,完整的代码见博文后面的附件。 一、 从Java传递数组到Jni层 ......

Android获取Mac地址,兼容6.0以下,6.0-7.0、7.0以上三种情况

package com.uiuno.tools.common; import java.io.BufferedReader; import java.io.FileReader; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.io.Reader; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; import android.content.Context; import android.content.pm.PackageManager; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Build; ......

Android 开发之接入Google支付

众所周知,Google Play是Google Android官方的应用商店,也是将应用发布到世界各地一个重要的渠道。支付作为盈利的一个重要手段,可以借助Google in-app Billing api来达到目的。 Google Play in-app Billing的接入过程需要阅读接入文档。官方的接入文档地址为: https://developer.android.com/google/play/billing/api.html (1)Google Play开发者控制台 Google Play开发者控制台是管理应用,配置商品和发布的后台。参考地址为: https://developer.android.com/distribute/googleplay/developer-console.html Google Play的帮助 ......

给 Android 开发者的 RxJava 详解

需阅读原文请点击:http://gank.io/post/560e15be2dca930e00da1083 前言 我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 。而最近这几个月,我也发现国内越来越多的人开始提及 RxJava 。有人说『RxJava 真是太好用了』,有人说『RxJava 真是太难用了』,另外更多的人表示:我真的百度了也谷歌了,但我还是想问: RxJava 到底是什么? 鉴于 RxJava 目前这种既火爆又神秘的现状,而我又在一年的使用过程中对 RxJava 有了一些理解,我 ......

Android 在 Eclipse 项目中使用 Leakcanary 内存泄露检测

一、前言 Leakcanary 是 Square 公司推出的一款开源项目,如果说没听说过 Leakcanary 的话,那 Square 的其他产品应该有听说过吧,曾推出过 okhttp,retrofit,picasso 等开源项目。Leakcanary 呢,是用于检测项目的内存泄露的,使用起来也很简单,但是这个项目是用于 Android Studio 的,至于 在 Android Studio 里怎么使用这里就不说了,打开上面的 Leakcanary 那个 Github 链接里面有说,由于一些人习惯用 Eclipse,或者一些之前在 Eclipse 中开发的老项目还没转成 Android Studio 的那怎么用这个 Leakcanary来检测内存泄露 ......

JNI与C++的数据类型转换

std::string转jstring jstring ToJString(JNIEnv* env, const std::string& value) { return env->NewStringUTF(value.c_str()); } jstring转std::string std::string ToCppString(JNIEnv* env, jstring value) { jboolean isCopy; const char* c_value = env->GetStringUTFChars(value, &isCopy); std::string result(c_value); if (isCopy == JNI_TRUE) env->ReleaseStringUTFChars(value, c_value); return result; } bool转jboolean jboolean ToJBool(bool value) { return valu ......

Android适配——drawable和values的加载规则

Google搞了一大套 dip、sp、mdpi、hdpi、xhdpi之类的这些东西,简单说来,就是为了让我们轻松实现“与设备密度无关的视觉大小一致性”,这里需要明确的“视觉大小一致性”,就是说无论是在手机、低分辨率平板、高分辨率平板上,这个控件或者图片在物理尺寸上都是一样的。 这里我们借 @雨打萍 的一张图片来看看: (出处: http://blog.csdn.net/xiebudong/article/details/37040263) 其中,黑色和蓝色矩形的视觉大小就是一致的。 另外一个需要明确的是屏幕密度、分辨率、物理尺寸之间的关系: 以一个分辨率为1920×1200,物理尺 ......

Android P预览版发布,新特性不容错过!

文章转载至:http://club.huawei.com/thread-15344398-1-1.html 导读: 北京时间2018年3月8日,谷歌Android P开发者预览版在万众瞩目中发布,安卓绿色联盟邀请华为专家为广大开发者及各大加固厂商解读P版本中那些不容错过的新特性。华为终端开放实验室也将围绕P版本开展一系列的测试、交流活动,欢迎关注!     Android P 应用适配新特性 1  Private API     Android P 禁止应用通过发射调用系统hide标注的类、方法和属性,加入黑名单的私有接口被反射调用会返回null或者出现异常。     从目前的情况来看黑名单是空 ......

Android热更新技术的研究与实现(三)

微信 Tinker 看完上面的Qzone超级补丁方案,我们不禁会想有没有那么一种方案,能做到开发透明,但是却没有QZone方案的缺陷呢?肯定是有的,比如我们完全可以使用新的Dex,那样既不出现Art地址错乱的问题,在Dalvik也无须插桩。当然考虑到补丁包的体积,我们不能直接将新的Dex放在里面。但我们可以将新旧两个Dex的差异放到补丁包中,最简单我们可以采用BsDiff算法。 Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。 Tinker和以往的HotFix库思路不太一 ......

Android热更新技术的研究与实现(二)

Sophix—阿里终极热修复方案 不过阿里作为大厂咋可能没有个自己的热更新框架呢,所以阿里爸爸最近还是做了一个新的热更新框架SopHix 巴巴再次证明我是最强的,谁都没我厉害!!!因为我啥都支持,而且没缺点。。简直就是无懈可击! 那么我们就来项目集成下看看具体的使用效果吧! 先去创建个应用: 获取AppId:24582808-1,和AppSecret:da283640306b464ff68ce3b13e036a6e 以及RSA密钥**。三个参数配置在application节点下面: <meta-data android:name="com.taobao.android.hotfix.IDSECRET" android:v ......

Android热更新技术的研究与实现(一)

Android热更新技术的研究与实现(一) ——必备引言—— 本文因为篇幅较长,可能会有错别字出现,望见谅。 第一部分重点是将当下热门的热更新方案实现之后再研究,第二部分则是自己动手实现一个自己的热更新框架。 Android热更新技术的研究与实现之研究篇 ———概念讲解——– 热更新 相关概念 这个词出现的时间已经很久了,感觉现在要找工作才来看是晚了不少,但是好东西什么时候学习都不晚的。 今天看到一句话,和大家分享下,人一生有三样东西是别人抢不走的: 吃进胃里的食物 藏在心中的梦想 读进大脑里的书所以趁着我们的时光正好,多学 ......

Android热更新方案之阿里AndFix 原理以及源码解析

源码路径:https://github.com/alibaba/AndFix 原理: 修复过程: 源码解析过程如下: patchManager=newPatchManager(context); patchManager.init(appversion);//current version   patchManager做了以下工作: public PatchManager(Context context) {    mContext = context;    mAndFixManager = new AndFixManager(mContext);    mPatchDir = new File(mContext.getFilesDir(), DIR);    mPatchs = new ConcurrentSkipListSet<Patch>();    mLoaders = new ConcurrentHashMap<String, ClassLoader>(); ......

Android5.0,6.0,7.0,8.0新特性整理

Android 5.0行为变更 API级别:21 1. Android Runtime(ART) 大多数 Android 应用无需任何更改就可以在 ART 下工作。不过,部分适合 Dalvik 的技术并不适用于 ART。如需了解有关最重要问题的信息,请参阅在 Android Runtime (ART) 上验证应用行为。如存在以下情况,应特别注意: 您的应用使用 Java 原生接口 (JNI) 运行 C/C++ 代码。 您使用生成非标准代码的开发工具(例如,一些代码混淆工具)。 您使用与压缩垃圾回收不兼容的技术 2. 声音和振动 如果您当前使用 Ringtone、MediaPlayer 或 Vibrator 类向通知中添加声音和振动,则移 ......

Android Asset Studio 图标在线生成工具的使用

文章转至:http://romannurik.github.io/AndroidAssetStudio/index.html 之前一直在用一个叫做Android Icon Creator的插件,可以直接在Android Studio的插件里搜索,这个工具的优点是可以生成适应各种分辨率的一套图标,有好几种风格的图标资源,遗憾的是虽然有很多套图标风格,毕竟是有限的。 Android Asset Studio可以自己选择其内置的图标,也可以从本地文件选择图标,提供了7种图标生成工具,分别是app启动图标,shortcut图标,动画图标,通知栏图标,.9图标,普通图标,actionbar或者tab上的图标。 如果你不喜欢它本身提供的 ......

Gradle 完整指南(Android)

转载http://www.jianshu.com/p/9df3c3b6067a 前言 为什么需要学Gradle? Gradle 是 Android 现在主流的编译工具,虽然在Gradle 出现之前和之后都有对应更快的编译工具出现,但是 Gradle 的优势就在于它是亲儿子,Gradle 确实比较慢,这和它的编译过程有关,但是现在的Gradle 编译速度已经有了成倍提高。除此之外,相对其他编译工具,最重要的,他和 Android Studio 的关系非常紧密,可以说对于一些简单的程序我们几乎不需要任何代码上的配置只使用 Android Studio 就可以完成编译和运行。 但是对于一些比较复杂的,特别是多人团队 ......