如何用最简单的方法发布Android library到jCenter(Bintray)
如何用最简单的方法发布Android library到jCenter(Bintray)
最初的想法是做一个很简单基础的网络请求的封装作为一个自己常用的网络库(这是另一个故事了), 在这个故事里, 遇到了很多… 意想不到的问题,在此留作记录,希望可以帮助到大家.
不想看太多只想简单操作就完事部分Bintray 注册(虽然啰嗦, 但是这个不提的话很容易遇到问题的)Bintray注册地址: https://bintray.com/signup/oss 注意这里的地址是有带有oss的,是注册的个人账户
以下是个人注册的页面
以下是组织注册的页面,可以看到需要你填写额外的内容
通过github授权登录就可以了,填写相关的信息就可以了
在上传之前, 我们要先建立一个Repository
Type记得要选择Maven
创建成功后页面显示如下
本地Library Module修改本地需要修改下面三个文件
项目的gradle文件 加入下面内容
12classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugi ...
shel(一)--基础
shell(一) – 基础什么是shell先看下官方的定义
Unix shell:一种壳层与命令行界面,是Unix操作系统下传统的用户和计算机的交互界面。普通意义上的shell就是可以接受用户输入命令的程序。它之所以被称作shell是因为它隐藏了操作系统低层的细节。Unix操作系统下的shell既是用户交互的界面,也是控制系统的脚本语言。
翻译过来就是说,Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核.
shell可以理解为一个特殊的应用程序
shell本身是由c语言编写而成的,shell实际上是一直解释性语言
shell和bash的区别这两个是包含的关系,bash是shell的一种,其中linux默认的shell就是bash.
bash可以说是shell的脚本解释器
第一个shell脚本123456789#!/usr/bin/env bash#像前面所说的,bash是shell的脚本解释器. #这种写法可以最大程度的避免夸平台下脚本无法运行的问题#后面相关文件均使用此默认配置echo "He ...
Leetcode70-ClimbingStairs(爬楼梯)
Leetcode70-ClimbingStairs(爬楼梯)LeetCode:https://leetcode-cn.com/climbing-stairs/
LeetCodeCn:https://leetcode-cn.com/climbing-stairs/
题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。
示例
示例 1:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1 阶 + 1 阶
2 阶
示例 2:
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1 阶 + 1 阶 + 1 阶
1 阶 + 2 阶
2 阶 + 1 阶
解题思路-迭代法一道很经典的题,这个题可以转化为求斐波那契数列数列第n项的问题.可以才用递归的方法,不过在递归的过程中有大量的重复计算导致其性能一般(可以通过设置计算缓存来避免).
初次之外,还可以用迭代的方法来降低消耗的资源.
原理很简单,应为斐波那契数列从第三项起,其值为 ...
LeetCode58-LengthOfLastWord(最后一个单词的长度)
LeetCode58-LengthOfLastWord(最后一个单词的长度)LeetCode:https://leetcode-cn.com/length-of-last-word/
LeetCodeCn:https://leetcode-cn.com/length-of-last-word/
题目描述给定一个仅包含大小写字母和空格 ‘ ‘ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例
输入: “Hello World”
输出: 5
思路很简单的一道题,主要是测试用例中’ ‘引起的各种问题,我们可以通过trim去除首位的’ ‘,然后再通过split截断’ ‘,返回最后一个字符串的长度即可.
代码实现12345678public int lengthOfLastWord(String s) { s = s.trim(); String[] strs = s.split(" "); if (strs.length == 0){ ...
LeetCode53-MaximumSubarray(最大子序和)
LeetCode53-MaximumSubarray(最大子序和)LeetCode:https://leetcode-cn.com/problems/maximum-subarray/
LeetCodeCn:https://leetcode-cn.com/problems/maximum-subarray/
题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
解题思路-分治此条件下,我们可以发现连续子数组的序列和最大的时候其首位不能为负数,原因很简单,如果首位为负数,当拿掉首位时,其剩余的数组和必然会增大.同理可扩展,如果某几项的和为负数时,则这几个数也不能作为和最大的子数组的开始
当了解了以上的内容时,我们可以采用分治的方法来解决此问题.我们已一个非负数为开始,直到和为负数为结束,再此过程中比较其和的最大值并记录,重复以上过程直到遍历到数组结束.
图解相关思路下面已[-2,1 ...
LeetCode27-RemoveElement(移除元素)
LeetCode27-RemoveElement(移除元素)LeetCode:https://leetcode-cn.com/problems/remove-element/
LeetCodeCn:https://leetcode-cn.com/problems/remove-element/
题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
示例
示例 1:
给定 nums = [3,2,2,3], val = 3,
函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。
你不需要考虑数组中超出新长度后面的元素。
示例 2:
给定 nums = [0,1,2,2,3,0,4,2], val = 2,
函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。
注意这五 ...
LeetCode26-RemoveDuplicatesFromSortedArray(删除排序数组中的重复项)
LeetCode26-RemoveDuplicatesFromSortedArray(删除排序数组中的重复项)LeetCode:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
LeetCodeCn:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
示例
示例 1:
给定数组 nums = [1,1,2],
函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
你不需要考虑数组中超出新长度后面的元素。
示例 2:
给定 nums = [0,0,1,1,1,2,2,3,3,4],
函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 ...
LeetCode21-MergeTwoSortedLists(合并两个有序链表)
LeetCode21:MergeTwoSortedLists(合并两个有序链表)LeetCode:https://leetcode-cn.com/problems/merge-two-sorted-lists/
LeetCodeCn:https://leetcode-cn.com/problems/merge-two-sorted-lists/
题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->5->6
输出:1->1->2->3->4->5->6
解题方法-类归并此两个链表的合并类似归并排序中将分治后的有序序列合并的过程,简单来说就是在合并的时候比较两个链表首位的的大小,取较小的值放入合并后的链表中,并移动对应的链表.
图解相关思路下面针对1->2->4, 1->3->5->6这两个链表进行合并
我们需要额外创建head和result,head用于存储需要返回的链表收节点,result用于 ...
LeetCode20-ValidParentheses(有效的括号)
LeetCode20:ValidParentheses(有效的括号)LeetCode:https://leetcode-cn.com/problems/valid-parentheses/
LeetCodeCn:https://leetcode-cn.com/problems/valid-parentheses/
题目描述给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例
示例 1:
输入: “()”
输出: true
示例 2:
输入: “()[]{}”
输出: true
示例 3:
输入: “(]”
输出: false
示例 4:
输入: “([)]”
输出: false
示例 5:
输入: “{[]}”
输出: true
解题方法-栈辅助通过题目的描述中我们可以知道括号需要有序的闭合,也就是每次开括号后遇到的一个闭括号序号和开括号对应,每次对应后就不需要再次验证,后出现 ...
LeetCode7:ReverseInteger(整数反转)
LeetCode7:ReverseInteger(整数反转)LeetCode:https://leetcode-cn.com/problems/palindrome-number/
LeetCodeCn:https://leetcode-cn.com/problems/palindrome-number/
题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
示例
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
解题方法此题相对来说比较简单,不断从x的最后一位取出数字然后校验当前数字是否合法,最后将最后一位移到结果的首位.
再此我们实现一下数字x = 123的翻转.
我们通过x % 10 = 3 来获取到此时x的最后一位为(index)3, 因为将最后一位取走,x需要通过x ...