自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1902)
  • 资源 (15)
  • 收藏
  • 关注

原创 Android配置build.gradle编译release包时以日期时间加序列号为Version Code且Version Code自动增长(二)

Android配置build.gradle编译release包时以日期时间加序列号为Version Code且Version Code自动增长(二)Android官方推荐以一个自然增长的整数值为Version Code,比如以基础数值1为基础,每次发一个release包时候Version值自增长1,于是Version Code以1,2,3,4,5,,,,这种样式的自然整数增长下去。然而有时候,...

2018-12-04 10:02:35 2037

原创 Android配置build.gradle实现Version Code编译release包时自动增长(一)

Android配置build.gradle实现Version Code编译release包时自动增长(一)经常的,开发者在上线发布之前要打出很多测试包给测试团队测试,每次打出的release包为了区分不同的版本号,需要手动的修改Android里面的配置文件build.gradle的versionCode字段,这一工作纯属于机械的手工修改,重复劳动,一不小心可能还会把版本号version cod...

2018-12-03 16:16:45 3609

原创 Java内存垃圾回收(Garbage Collection)机制基本方法和原则:System.gc()与finalize()

Java内存垃圾回收(Garbage Collection)机制基本方法和原则:System.gc()与finalize()Java一个对象的finalize()函数,是在当前对象被回收时才会调用。System.gc()暗示和提醒JVM开始垃圾回收。Java程序中显示调用System.gc() 搭配 Runtime.getRuntime().gc(),JVM并不一定马上就进行垃圾回收。这些方法...

2018-12-01 12:51:39 1038

原创 Android查看apk签名信息

Android查看apk签名信息把一个App应用程序的apk文件拿到手后,修改它的文件后缀名,比如原先的文件名叫做app.apk,把它改成app.zip,然后把它当做一个普通zip压缩文件解压,解压后得到以下文件结构:从META-INF文件目录下面,把ANDROID_.RSA(这个就是签名数据保存的文件)取出来,然后使用命令查看它:keytool -printcert -file A...

2018-11-28 18:55:01 10934 1

原创 Android Studio编译错误:Manifest merger failed with multiple errors, see logs

Android Studio编译错误:Manifest merger failed with multiple errors, see logs需要在AndroidManifest.xml中增加配置:tools:replace="label"<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="...

2018-11-15 22:08:24 5296

原创 Android LifecycleObserver & ScheduledThreadPoolExecutor用户可见时每隔3秒周期更新,用户不可见时暂停周期更新

Android LifecycleObserver & ScheduledThreadPoolExecutor用户可见时每隔3秒周期更新,不可见时暂停每隔3秒的周期更新简言之,当用户按home键把当前App切换至“后台”不可见时候(用户看不见当前App页面时候),暂停每隔3秒的周期更新操作。当用户又将App切换至前台,用户看到App页面时候,重启每隔3秒的周期性更新。关键是通过Life...

2018-11-13 10:44:32 737

原创 Android LifecycleObserver

package zhangphil.test;import android.arch.lifecycle.Lifecycle;import android.arch.lifecycle.LifecycleObserver;import android.arch.lifecycle.LifecycleRegistry;import android.arch.lifecycle.OnLif...

2018-11-12 16:33:50 2764

原创 Android逆向工程之apk加固后反编译AndroidManifest.xml

Android逆向工程之apk加固后反编译AndroidManifest.xmlAndroid编译生成的apk经过加固后,AndroidManifest.xml无法直接查看,直接打开是一堆乱码。在一些情况下, 又特别需要知道加固后的包中某个值最终形态,比如多渠道打包中,根据不同配置生成不同的渠道名,需要核实渠道名是否真的正确,这时候就需要通过Android的逆向工程,把加固后apk中包藏的me...

2018-11-08 11:11:08 7437 2

原创 git cherry-pick:复制多个提交commit到当前分支

git cherry-pick:复制多个提交commit到当前分支git cherry-pick的作用是合并不同分支的若干个commit到当前分支,这些若干个commit代码提交可以是不同分支的commit提交,如图:现在master分支打算把develop分支的C、D、E这三次提交复制到当前mater分支,那么首先需要从develop切换到分支到master:git checko...

2018-11-06 14:49:05 24879 3

原创 Java CompletableFuture simple example

private void test() { CompletableFuture.supplyAsync(new Supplier<String>() { @Override public String get() { System.out.println("开始休眠..."); ...

2018-11-03 14:40:53 348

原创 Apache Tomcat服务器安装配置和部署运行

Apache Tomcat服务器安装配置和部署运行在Windows 64位系统上安装配置和部署运行Apache Tomcat服务器。1,先下载适应于64为Windows操作系统的Tomcat服务器。连接:http://tomcat.apache.org/我下载的是:2,解压:3,配置Tomcat服务器的运行环境和Java环境。我是通过写bat批处理文件实现,不需要配...

2018-11-01 10:56:49 8844

原创 Android IPC进程间通信之AIDL双向通信

Android IPC进程间通信之AIDL双向通信假设现在有两个App,一个是作为服务器端的App称之为:Server。另一个是作为客户端端的App称之为:Client。Server对外提供计算服务,为连接上的客户端端App:Client提供计算服务,Server这个App接受客户端App:Client传递过来的两个整数,然后服务器端App:Server负责计算求和,然后Server把计算结...

2018-10-31 10:01:29 1640 2

原创 新Java并发线程控制:CyclicBarrier等待所有线程到达一个状态后执行一个线程动作(2)

新Java并发线程控制:CyclicBarrier等待所有线程到达一个状态后执行一个线程动作(2)在附录3的基础上继续深化CyclicBarrier。假设这场龟兔赛跑的过程中,通过CyclicBarrier使得兔子和乌龟均到达400米赛点后,裁判员这时候也需要重启一个秒表计时功能记录当前时间,那么就可以通过CyclicBarrier的构造函数实现一个CyclicBarrier 的“内部线程”做...

2018-10-30 20:38:36 1062

原创 新Java并发线程控制:CyclicBarrier等待所有线程到达一个状态后再让全部线程处于一个起跑线(1)

新Java并发线程控制:CyclicBarrier等待所有线程到达一个状态后再让全部线程处于一个起跑线(1)Java批量线程运行后,有的运行慢,有的运行快,CyclicBarrier让所有线程到达一定状态后继续接着执行。举一个龟兔赛跑的例子,兔子很快就可以到400米赛点,而乌龟跑的慢,很慢才到。现在要求兔子和乌龟必须都到达400米赛点时候才可以重启赛跑。CyclicBarrier的await(...

2018-10-29 10:02:17 1403

原创 新Java并发线程控制:CountDownLatch等待所有线程运行完毕才执行

新Java并发线程控制:CountDownLatch等待所有线程运行完毕才执行创建一批Java线程,然后这批Java线程几乎同时全部跑起来,但是有些开发场景下,开发者需要等到这些Java线程全部执行完毕后,才去执行接下去的业务流程。这个时候就可以CountDownLatch就可以派上用场,CountDownLatch是Java语言从1.5引入的线程控制类,* A synchronizat...

2018-10-28 12:32:46 1875 1

原创 新Java线程Semaphore:并行环境下访问竞争资源控制

新Java线程Semaphore:并行环境下访问竞争资源控制Semaphore是从Java 1.5引入的Java线程新内容。Semaphore实现在线程的竞争资源访问环境下,对资源的访问控制。只有申请(acquire)得到Semaphore的许可证的线程任务可以访问竞争资源。例如: private void test() { // 虽然有很多线程想访问某些资源,但...

2018-10-27 10:03:10 554

原创 Android配置build.gradle的 productFlavors区分加载若干套不同代码资源后的默认加载项

Android配置build.gradle的 productFlavors区分加载若干套不同代码资源后的默认加载项附录1解决了通过build.gradle配置productFlavors区分加载若干套不同代码资源,项目中有app_dev,app_test,app_pro: flavorDimensions "zhangphil_demo" productFlavors {...

2018-10-26 10:01:57 1904

原创 Android通过build.gradle配置productFlavors区分加载若干套不同代码资源

Android通过build.gradle配置productFlavors区分加载若干套不同代码资源Android在编译apk时候,有时候需要根据不同环境启用或关闭相应的代码资源文件。比如,工程代码中有一个Java写的Config文件,该文件在编译生成不同的包时候,虽然同样一个Config文件,但内容是不一样的。假设现在需要编译生成三种包,开发包(app_dev),测试包(app_test),...

2018-10-25 13:09:22 7258

原创 java.lang.UnsatisfiedLinkError: dlopen failed: "/data/xxxxx.so" has bad ELF magic

java.lang.UnsatisfiedLinkError: dlopen failed: "/data/xxxxx.so" has bad ELF magic原因是引入的.so库未能做好兼容。解决方案是在defaultConfig里面增加:ndk {    abiFilters "armeabi-v7a"}强制Android的ndk兼容armeabi-v7a体系架构。排除其...

2018-10-23 17:11:50 18251 2

原创 Android配置build.gradle的productFlavors多渠道打包

Android配置build.gradle的productFlavors多渠道打包Android在分发不同市场的release包时候,在中国经常会遇到各个不同市场需要编译打出一个不同apk包,这些不同的包在一些统计分析SDK中又是必需的,比如友盟统计分析,它需要根据写在Androidmanifest.xml的字段,如果针对每一个渠道都要去修改Androidmanifest.xml的值并重新打包...

2018-10-23 09:41:15 2284

原创 Android获取应用程序名称的稳定、可靠、简单方案

获取Android应用程序名称的稳定、可靠、简单方案在Android开发中,相信绝大多数Android开发者使用的是网络上盛传的这个方法获取应用程序名称的: /*** * 获取应用程序名称。 * @param context * @return */ public static String getAppName(Context co...

2018-10-22 18:31:20 1898

原创 Android配置build.gradle的productFlavors编译不同配置的apk包

Android配置build.gradle的productFlavors编译不同配置的apk包主要根app的build.grdle配置productFlavors: flavorDimensions "zhangphil_demo" productFlavors { app_dev { dimension "zhangphil_dem...

2018-10-22 17:23:07 1940

原创 Android通过Bluetooth蓝牙发送手机照片文件到Windows PC:Java实现

Android通过Bluetooth蓝牙发送手机照片文件到Windows PC:Java实现本文在《Android通过蓝牙发送数据到Windows PC电脑:Java实现(链接地址:https://blog.csdn.net/zhangphil/article/details/83146705 )》基础上改进代码,还是用Java实现把Android手机上的一张照片,通过Bluetooth蓝牙连...

2018-10-19 10:19:47 3034

原创 Android通过蓝牙发送数据到Windows PC电脑:Java实现

Android通过蓝牙发送数据到Windows PC电脑:Java实现Android手机设备之间通过蓝牙连接然后发送数据,这在我之前的蓝牙专栏里面有介绍,详情见专栏:https://blog.csdn.net/column/details/17325.html但是通常还有一种功能需求是Android手机如何通过蓝牙把数据传输到Windows PC上呢?这在需求还很常见,比如用户通过Andro...

2018-10-18 14:59:35 7102 2

原创 Java把一个文件转化为byte字节数组

Java把一个文件转化为byte字节数组 /** * 把一个文件转化为byte字节数组。 * * @return */ private byte[] fileConvertToByteArray(File file) { byte[] data = null; try { File...

2018-10-17 18:40:29 27066 2

原创 git diff比较不同commit版本的代码文件异同

git diff比较不同commit版本的代码文件异同 如图,假设像知道app目录下的build.gradle文件在两次commit(fee9f9cf4b和cdd577e352)之间的异同和变化,可是使用命令git diff:git diff fee9f9cf4b cdd577e352 app/build.gradle输出如图: 如果git diff后面只有两个co...

2018-10-16 19:02:57 24304

原创 Android Studio Offline work mode

Android Studio Offline work mode(离线模式)File - Settings - Gradle - 勾选 "Offline work" 

2018-10-11 09:20:11 1944

原创 Java实现TCP/IP的ping连通性

Java实现TCP/IP的ping连通性import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;public class TestClass { public static void main(String[] args) { String netAddr...

2018-10-10 14:43:43 2507

原创 Java/Android的keytool查看Android keystore的md5值

Java/Android的keytool查看Android keystore的md5值Android发布正式的版本出去需要一个keystore文件签名,打包打出正式的包发行到市场。在有些第三方SDK中需要当前的这个App提供md5签名值(以支持第三方提供的服务如地图、分享功能等)。如何查看当前App经过正式的keystore签名打包后生成的md5或者哈希呢?很简单,一行简单的命令即可,例如...

2018-10-08 16:38:45 6653

原创 Android自定义文本输入框光标颜色

主要通过配置文本输入框如EditText的:android:textCursorDrawable属性完成。如果设置android:textCursorDrawable="@null"那么文本输入框的光标颜色将于配置的android:textColor颜色一样。如果开发者需要自定义输入光标的样式,则直接给android:textCursorDrawable设置一张自己制作的图...

2018-09-28 14:29:38 5523

原创 Android Fragment添加onTouchEvent监听

Android Fragment添加onTouchEvent监听Android原生的Fragment不像Activity一样有onTouchEvent这样的触摸事件监听,但是可以间接实现。实现的步骤:第一,首先在Fragment依附的Activity(假设这个Activity名为MainActivity)中增加接口和分发onTouchEvent: private Array...

2018-09-27 09:20:01 5094

原创 Android PopupWindow

代码:package zhangphil.test;import android.content.Context;import android.content.res.Resources;import android.graphics.Color;import android.os.Bundle;import android.support.annotation.Nullable...

2018-09-26 10:47:11 285

原创 Android通过PagerSnapHelper改造RecyclerView成“ViewPager”

Android通过PagerSnapHelper改造RecyclerView成“ViewPager”最新Android平台针对RecyclerView引入一个辅助类PagerSnapHelper,PagerSnapHelper可以把一个普通的RecyclerView改造成ViewPager,每一个RecyclerView的子item在翻动时候,像ViewPager一样。如代码:pac...

2018-09-25 11:29:55 7385 1

原创 Android滚轮实现LinearSnapHelper

Android滚轮实现LinearSnapHelperLinearSnapHelper可以帮助Android的RecyclerView实现滚轮效果,所谓滚轮效果,就是在列表内容滚动时候,总是把某一项内容处于屏幕(视野)正中间。本例特意把RecyclerView设置成水平方向,更容易观察出滚轮实现的效果。同时把RecyclerView的子item故意设置大一些,左右滑动时候的效果如图,可以看...

2018-09-21 16:33:31 7183

原创 Android通过MotionEvent仿真手指在屏幕单次点击事件

Android通过MotionEvent仿真手指在屏幕单次点击事件Android的View有一个方法performClick(),可人工模拟用户在手机屏幕上的点击事件,这次换一种方法,通过代码制造MotionEvent生产一次针对View的屏幕单次点击事件: private void simulateClick(View view, float x, float y) { ...

2018-09-19 10:29:33 5140 2

原创 RecyclerView、NestedScrollView嵌套子RecyclerView焦点抢夺引起子元素显示位置异常

RecyclerView、NestedScrollView嵌套子RecyclerView焦点抢夺引起子元素显示位置异常错误表现是子元素抢占焦点,使得嵌套的子RecyclerView滚动到自己位置。解决方案:在根滚动布局View(最顶层的RecyclerView、NestedScrollView)里面设置:android:focusableInTouchMode="true"andro...

2018-09-11 15:37:26 2509

原创 Android连续点击两次返回键退出App

Android连续点击两次返回键退出App private long firstTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { long secondTime = System.currentTimeMillis(); if (key...

2018-09-10 09:44:26 3543

原创 Android TabLayout选项卡点击选中Ripple水波纹

Android TabLayout选项卡点击时候选中的Ripple水波纹如果要实现自定义的TabLayout选项卡被点击选中时候的水波纹效果,要从xml属性定义中的:app:tabBackground入手,如果想取消掉TabLayout选项卡点击时候的Ripple水波纹效果,直接给app:tabBackground赋值为null即可:app:tabBackground="@null" ...

2018-09-08 11:44:19 3204 1

原创 git patch合并(同步、更新)两个不同分支中的单个文件

git patch合并两个不同分支中的单个文件 比如现在有两个分支:dev_0.0.1_zfdev_1.1.0_zf这两个分支是一个项目的不同版本分支。这两个分支中维护着一个相同的代码文件XinWenFragment.java。但是针对两个分支中的共同的代码文件XinWenFragment.java,在更新的分支dev_1.1.0_zf中做了新修改,现在需要把在新分支dev_1.1.0...

2018-08-31 18:23:08 8744

原创 Android Studio报错:Please configure Android SDK

Android Studio报错:Please configure Android SDK如图: 解决方案:点击 configure 进入工程结构,然后选择属性配置,在右侧的 Build Tools Vesion 任意选择一个版本,同步,就可以了。...

2018-08-31 13:51:05 8992 5

vcruntime140_1.dll

vcruntime140_1.dll

2022-01-10

2019年民航机场吞吐量排名.xls

2019年民航机场生产统计公报。数据来源,民用航空局。该excel表格中,罗列了中国各大城市在2019年的机场客流量数据和排名。

2020-12-10

链家2020年9月二手房数据

全国的房产价格地址经纬度等信息,2020年9月份链家的二手房数据包。下载后是一个excel表,将这个excel表另存为csv数据文件,可以用pandas读取。

2020-12-10

strava_com_sample_utf8.xls

一个excel表格数据,数据是一个公开的Python数据集,包含路径经纬度散点。提取里面的路径经纬度散点,可以构绘出地图线路。

2020-12-10

jxta2.7.zip

JXTA 2.7,P2P分布式计算框架JXTA。version 2.7。shell 2.5.

2019-08-21

AXMLPrinter2的jar文件及源代码文件

Android逆向工程之AXMLPrinter2的jar文件及源代码文件。

2018-11-08

digital-7字体(LED数字样式字体)

digital-7字体(LED数字样式字体)。该字体主要用于显示LED数字灯样式的字体。直接导入到Android assets文件下,作为font 字体使用。

2017-09-05

Android-PullLayout:仿UC天气下拉和微信下拉眼睛头部弹入淡出

Android-PullLayout:仿UC天气下拉和微信下拉眼睛头部弹入淡出

2015-11-29

QQ侧滑边栏源代码

移动版QQ侧滑边栏源代码(Android)。UI交互设计样式和QQ高度相似。

2015-10-29

DrawerLayoutDemo

Android DrawerLayout Demo

2015-09-24

MaterialDesignLibrary_Code and Lib合集

MaterialDesignLibrary_Code and Lib 内含:NineOldAndroidsLibrary包和一个测试项目:MaterialDesignActivity

2015-09-21

Android Volley

Android网络开发框架Volley需要的jar包:volley.jar。该包直接导入到自己的项目即可使用。

2015-08-27

sqlitemanager.jar

sqlitemanager.jar。用于查看SQLite数据库的第三方插件。

2015-07-16

SearchDemo

Android搜索建议演示代码,完整的项目代码文件。

2015-04-17

Android底部弹出iOS7风格对话框_库文件资源

Android底部弹出iOS7风格对话框。库文件,直接作为库添加到自己的项目加以引用即可。

2015-04-08

空空如也

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

TA关注的人

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