登录
  • 欢迎访问Sharezer Blog

Gradle for Android 第一篇 (从 Gradle 和 AS 开始)

[toc] 原文地址 https://segmentfault.com/a/1190000004229002 这一系列暂不更新,相关技术讨论,请移步微信群,谢谢,希望大家多多支持! 正如大家所见,这是本英文书,而由于国内的 gradle 翻译资料不全,所以特次开辟专栏,翻译 gradle for android 这本书,同时添加自己的心得体会以及在实际工作上的实战,希望大家能够喜欢。 这会是一个系列,所以如果你看完这篇文章,请看下列文章: Gradle for Android 第一篇 (从 Gradle 和 AS 开始) Gradle for Android 第二篇 (Build.grad……继续阅读 »

一份超全超详细的 ADB 用法大全

原文地址 https://blog.csdn.net/u010375364/article/details/52344120 原文链接:https://github.com/mzlogin/awesome-adb ADB 常用用法大全,收集了在开发、测试和普通用户使用 ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。 持续更新中,欢迎提 PR 和 Issue 补充指正,觉得有用的可以将 此 GitHub 仓库 Star 收藏备用。 注: 有部分命令的支持情况可能与 Android 系统版本及……继续阅读 »

AS中“marketplace plugins are not loaded”解决方案

在AS的plugins工具时竟然给我提示“marketplace plugins are not loaded”! 经上网了解发现IDEA的模块系统加载不出来,是由于IDEA的网络安全机制造成的,类似于windows的防火墙,IDEA误认为你的网络不安全,不给你连接,本质为公司的网络被IDEA认为不安全,具体IDEA为什么会这么认为,原因暂时我还不知道。 解决方法时这样的:点击File->settings->Appearance&Behavior->System Settings -> Updates 将Use secure connection选项的√去掉!……继续阅读 »

apk编译写入编译时间和最后次git commit的sha值

apply plugin: 'com.android.application' //创建当前时间字符创 比如 0411_1213 表示 4月11号,12点13分 def buildTime() { def date = new Date() def formattedDate = date.format('MMdd_HHmm') return formattedDate } //获取文件夹最后一次git commit的sha值 def gitSha = 'git rev-parse --short HEAD'……继续阅读 »

Gradle 插件结合 asm 实现 android AOP 埋点

本文由 简悦 SimpRead 转码, 原文地址 https://www.jianshu.com/p/067b1399158d 1、在 buildsrc 中新建 AsmInjectPlugin 插件 public class AsmInjectPlugin implements Plugin<Project>{ @Override void apply(Project project) { System.out.println("========================") System.out.pri……继续阅读 »

Gradle 自定义插件以及发布方法

本文由 简悦 SimpRead 转码, 原文地址 https://www.jianshu.com/p/d1d7fd48ff0b 前言 我们平常在进行 Android 开发时,都会使用 Gradle 来进行项目配置,通常在对应的 module:app 的build.gradle中,在最上面的一句话一般都为: apply plugin: 'com.android.application' 这句话就是用来加载 gradle 的android开发插件,然后,我们就可以使用该插件提供的配置方法进行 Android 项目的配置了,即如下所示: android { compileSdkVers……继续阅读 »

Android 中常用设计模式

介绍 Java 中一般认为有 23 种设计模式,我们不需要所有的都会,但是其中常用的几种设计模式应该去掌握。下面列出了所有的设计模式。需要掌握的设计模式我单独列出来了,当然能掌握的越多越好。 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 1、单例设计模式 最好理解的一种设计模式,分为懒……继续阅读 »

Android&iOS一键分享

[TOC] Android与iOS不嵌入微信SDK的情况上发送一份文件给微信好友。 1. iOS 一键分享 let activityVC = UIActivityViewController(activityItems: ["需要分享文件asset" as Any], applicationActivities: nil) activityVC.popoverPresentationController?.sourceView = self.view self.present(activityVC, animated: true, completion: nil) 效果如……继续阅读 »

JNI中多线程回调Java方法问题

1. 背景 在JNI中使用中需要在一个c层的回调方法中调用Java层的静态方法,一开始的设想是初始化的时候保存JNIEvn与jclass为全局变量,需要的时候直接使使用。在实际使用中发现,直接使用会出现奔溃。 初步猜测可能是多线程引起。 2. 问题排查 2.1 步骤1 子线程中使用全局JNIEnv与jclass 使用方法 jmethodID mid = (*g_env)->GetStaticMethodID(g_env, g_cls, "print", "(Ljava/lang/String;)V"); jstring param = (*g_env)->NewStringUTF(……继续阅读 »