自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 shell脚本处理多个游戏子包无法安装同一部手机!

前提:在游戏出包时,一个母包出多个子包,往往会遇到游戏母包在AndroidManifest配置的fileProvider,或推送是同一个包名时,如果出子包不去处理这个,会导致打出来的游戏子包,由于同一包名的配置,手机安装不了多个游戏子包。以下通过shell脚本的命令行来自动替换成打不同子包,配置不同的包名的fileProvider或推送。思路:通过反编译,获取到AndroidManifest文件的包名和配置的fileProvider或推送的包名进行替换修改,即可实现。一、编写获取到An.

2020-06-08 15:45:09 273

原创 java反射解析及应用场景

应用场景:在开发游戏sdk时,如果多个渠道sdk在一个融合框架中相互调用,为了更好做到要打哪个渠道的sdk就调用此sdk的方法的兼容性,在不导入此sdk时,又可以使程序跑起来,不崩溃,这样就用到了java反射进行在框架进行调用,达到了更好的效果。以下分别以三种函数方法进行java反射举例解析说明1、先声明三种函数方法的类package utils;public class TestReflect { public String getName(){ ...

2020-05-19 11:32:53 465

原创 JSON解析服务端返回数据并封装赋值于实体类

前提:客户端开发的数据请求服务端获取,大部分返回的数据格式是json形式,所以为了减少每次用JSONObject类去解析,导致代码繁琐操作,如下封装了一个json解析实体类的工具进行实现,减少繁琐代码的解析操作,利于提高开发效率。此工具类只是针对一级json格式的解析,多级解析还待完善。开发目的:游戏sdk的开发,避免使用第三方json解析,导致其他渠道也使用第三方json解...

2020-05-08 11:31:18 1062

原创 Android apk的versioncode值获取的命令行代码实现

需求场景:公司开发的线上打包系统需要获取apk的versionCode值进行显示并修改,减少每次都手动查看apk的versioncode的繁琐步骤,通过集成jar包,代码实现,以达成自动化,方便获取。实现原理:通过aapt命令行获取apk的信息,再进行逻辑判断处理,获取到versioncode值;aapt dump badging demo.apk代码实现步骤:1、声...

2020-04-28 17:15:56 996

原创 Android 签名 v1,v2的区别及命令行查看apk签名信息

Apk签名就是对我们的apk加了一个校验参数,防止apk被掉包。一开始做Android开发,就接触到了apk签名;后来在微信开放平台、申请ysdk的参数,需要填写apk签名的md5值和sha256值;就想整理一下,也分享给其它小伙伴们。一、v1、v2签名的理解:v1:在v1中只对未压缩的文件内容进行了验证,所以在APK签名之后可以进行很多修改——文件可以移动,甚至可以重新压缩。即可以...

2020-04-24 12:11:21 6057

原创 aapt的shell打包脚本

#!/bin/bash# 应用包 build apk script# file name build-tencent.sh# 使用说明# 1.把全部打包资料都准备好放到一个目录里# 2.把build.sh复制到这个目录里# 3.用文本编辑器打开build.sh配置里面的信息# 4.在当前目录下执行脚本# ---------配置信息 BEGIN----------# ---打...

2019-09-18 14:51:02 616

原创 aapt打包apktool.yml文件的sdkInfo丢失为null处理

#资源打包#android.jar的路径androidJar="/Users/Dexlin/Library/Android/sdk/platforms/android-29/android.jar"#sdklibJar路径sdklibJar="/Applications/dev-tool/adt-bundle-mac-x86_64-20140702/sdk/tools/lib/sdkli...

2019-09-18 14:46:18 954 2

转载 Android 自动编译、打包生成apk文件 、命令行方式

相关文章列表:《Android 自动编译、打包生成apk文件 1 - 命令行方式》(当前文章)《Android 自动编译、打包生成apk文件 2 - 使用原生Ant方式》《Android 自动编译、打包生成apk文件 3 - 使用SDK Ant方式》一、搭建搭建环境1. 安装JDK 和 Android SDK2. 配置环境变量D:\android-sdk-windows\t...

2019-09-17 19:26:49 767

原创 YSDK登录不了,cp属性配置的坑

就一个https属性的配置,导致了ysdk的登录不了,真的好坑,今天记录一下,防止后来开发者遇到同样的坑。ysdk的提示:这个就是因为application的一个属性配置导致的android:networkSecurityConfig="@xml/xg_network_security_config"配置的内容:<?xml version="1.0" encoding...

2019-09-16 20:30:15 2028

原创 shell实现apktool.yml的versionCode修改

#!/bin/bash#文件路径file_path="/Users/DexLin/Desktop/项目/shell练习/测试/API22_56/apktool.yml"#要替换的versionCode值versionCode=40while read linedoline_length=${#line}if [ $line_length -ge 11 ]theneach_...

2019-06-11 16:31:58 1183

原创 常用正则表达式大全

一、校验数字的表达式1. 数字:^[0-9]*$2. n位的数字:^\d{n}$3. 至少n位的数字:^\d{n,}$4. m-n位的数字:^\d{m,n}$5. 零和非零开头的数字:^(0|[1-9][0-9]*)$6. 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7. 带1-2位小数的正数或负数:^(\-)?\d...

2019-06-11 09:50:22 136

原创 shell 脚本实现目录多格式文件的管理

#!/bin/bash#目录dirpath="/Users/DexLin/Downloads"#声明文件格式数组array_file=(zip rar jpg pdf apk mp3 txt xls png doc lsx tml)# ----------CMD-----------for file in $dirpath/*do file_length=${#f...

2019-06-10 11:20:12 420

原创 shell 判断文件夹或文件是否存在

文件夹不存在则创建 1 2 3 4 5 if[ ! -d"/data/"];then mkdir/data else echo"文件夹已经存在" fi 文件存在则删除 1 2 3 4 5 if[ ! -f"/dat...

2019-06-10 10:08:02 171

原创 apk的icon替换,shell脚本实现

#!/bin/bash# 游戏APK名字,注意不带后缀gameApk="五寨分院"#icon名称icon_name="icon.png"#res路径长度apk_length=`expr ${#gameApk} + 5`#icon长度icon_length=${#icon_name}# ---签名信息---keystoreFile="csgame.jks"keyName...

2019-06-06 14:41:09 598

原创 android 全屏 webview 加载的h5的输入框,被键盘遮挡的解决

1.布局xml调整WebView控件所在的布局,WebView祖先节点不能有ScrollView。另外,根节点不能固定高度。还有,当根节点是FrameLayout时,WebView父节点不能固定高度。<FrameLayout android:layout_width="match_parent" android:layout_height="match_parent...

2019-04-24 14:37:45 2417

原创 Android Studio打出JAR包

Android Studio中对于library类型的Moudle,默认打出来的是AAR包, 但有时候我们的SDK还需要共享给一些其他eclipse的项目使用,这样我们就需要输出JAR包, 可以通过在Moudle中的build.gradle加入task来实现task makeJar(type: Copy) { delete 'build/libs/mysdk.jar'

2017-11-13 10:18:02 420

原创 app实现自动升级

每开发一款app都要升级版本,下面就简述一下app的自动升级,希望能帮助到大家。1、先声明一个服务类,实现自动下载的功能。public class UpdateService extends Service { public UpdateService() { } /** 安卓系统下载类 **/ DownloadManager

2017-11-08 09:51:52 2237

原创 App实现自动更新

在Android的app中,如果有版本更新时,会询问是否更新的对话框,点击更新之后,安装成功!实现步骤:Step1:读取版本号我们使用到的类PackageManager,PackageManager主要是管理应用程序包,通过它就可以获取应用程序信息。[java] view plain copyPacka

2017-09-25 17:26:16 2455

原创 Android设置透明、半透明等效果

设置透明效果 大概有三种1、用android系统的透明效果Java代码 android:background="@android:color/transparent" 例如 设置按钮Java代码    android:text="@+id/Button01"     android:id="@+id/Button01"     and

2017-07-17 09:11:34 356

原创 android多语言适配app

对于App开发而言,Android多语言适配实在太简单了,新增values文件夹就可以了,只是很多人不清楚每一种语言对应的代号。当然正常App不需要支持这么多语言吧。最简单的3个就OK了,values,values-zh-rCN,values-en-rGB,即中文,英文,默认。下面就列举部分常用的语言代号中文(中国):values-zh-rCN中文(台湾):valu

2017-07-14 23:31:43 422

原创 获取CPS,CPA,CPD等非SDK联运渠道的逻辑渠道号

在游戏快上线的时候,我们除了接入多家联运的渠道SDK之外,还有另一些情况存在。就是常说的CPS,CPA,CPD等情况。这些都无需接入SDK,仅仅是一些广告推广手段。通常我们会基于官方SDK的游戏包,生成多个用逻辑渠道号标识的一些包。用这些逻辑渠道号来标示这个游戏包属于哪个广告渠道。通常就是这样的需求,比如:基于官方SDK的包生成以下逻辑渠道包:google渠道包友盟渠道包百度推广渠

2017-07-11 18:11:33 3332

原创 android 网络请求get,post实现

HttpURLConnection       //   Get方式请求public static void requestByGet()throws Exception {String path ="https://reg.163.com/logins.jsp?id=helloworld&pwd=android";// 新建一个URL对象URL url

2017-07-09 21:33:12 311

原创 android网络请求HttpURLConnection详解

设置连接参数的方法setAllowUserInteractionsetDoInputsetDoOutputsetIfModifiedSincesetUseCachessetDefaultAllowUserInteractionsetDefaultUseCaches设置请求头或响应头HTTP请求允许一个key带多个用逗号分开的values,但是HttpURLConne

2017-07-09 21:29:45 1052

原创 git命令行及shell命令行

shell常见命令行cd /bin:set:查看所有的变量env:只能查看环境变量echo:查看变量值  $变量名 获取变量值  echo $keypwd:查看当前路径history:查看所操作的命令ls:查看文件alias:查看所有的别名unaries:删除别名cal:打印当前日历touch:创建文件vim:查看which::查找某个指令所在的

2017-06-28 16:58:21 694

原创 github上搭建项目

git使用https协议,每次pull, push都要输入密码,相当的烦。 使用git协议,然后使用ssh密钥。这样可以省去每次都输密码。大概需要三个步骤:一、本地生成密钥对;二、设置github上的公钥;三、设置或修改git的remote url为git协议。四、提交项目到github一、生成密钥对。大多数 Git 服务器都会选择使

2017-06-28 15:54:49 401

原创 jar命令解析

在接入渠道SDK时,有时会遇到jar包的资源冲突或包的资源缺少,就需要我们手动去解压jar包,查看并解决。下面就来分析怎么去运用jar命令来帮忙解决问题。JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包。当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成。JAR包是由JDK安装目录\bin\

2017-06-12 12:16:15 419

原创 Android studio自动签名

在搞分享SDK时,微信的分享要签名才能调起分享界面,所以用Android Studio开发SDK分享功能时,要想运行时,直接用自己的签名文件进行签名调用,则用到了Android studio的gradle进行配置签名。

2017-06-08 16:11:01 472

原创 android 获取资源id的工具类

在开发SDK中,如果需求中要开发者去实现界面,然后再给别人调用。这样的需求,我们必须去写一个工具类来获取各个资源文件夹下的id。通过底层获取id的代码实现,这样游戏接了才不会导致找不到资源ID。import android.content.Context;import java.lang.reflect.Field;public class ResourceUtil { pu

2017-05-24 18:35:54 1016

原创 判断QQ,微信,微博是否安装

今天弄了一下QQ,微信,微博分享SDK时,发现如果没有安装QQ,微信客户端,点击分享,啥提示都没有,也没反应,但微博没有安装客户端时,会自动跳转到微博的网页界面进行登录。所以现在就搞了一个需求,如果没安装QQ,微信客户端时,就提示用户安装再进行分享。下面写了一个工具类来判断是否安装,原理很简单,就是通过遍历手机所安装的程序包名来进行判断:public class CheckClientUt

2017-05-19 11:04:45 1524

原创 shell命令学习笔记

运算符 说明 举例-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 true。-ne 检测两个数是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。-gt 检测左边的数是否大于右边的,如果是,则返回...

2017-05-16 23:49:23 406

原创 通过AndroidManifest配置来设计游戏的闪屏页

在为游戏接入渠道SDK时,很多渠道都要求设置闪屏页来启动游戏。下面就通过配置AndroidManifest来启动闪屏页。1、配置AndroidManifest的启动Activity<meta-data android:name="GAME_LAUNCH_ACTIVITY" android:value="com.dexlin.demo.GameActivity"/>

2017-05-15 22:28:23 492

原创 重新编译生成R文件

在为游戏接入A站SDK时,发现接好的SDK,编译执行时,找不到资源Id。当时就很懵逼,搞不懂为什么R文件没有自动生成资源id,通过一天的研究,查找资料,终于搞定了!下面就是怎么重新编译生成R文件的步骤:1.生成smali文件夹使用打包脚本生成一个合并ACfunSDK后的无签名apk包,使用apktool d xx.apk解压apk,生成smali文件夹2

2017-05-13 00:53:40 5304 1

原创 apk手动签名

在为游戏接入渠道SDK时,接好后一般都是要手动给游戏包签名,不像开发应用那样,直接使用android studio工具界面进行签名,今天就总结了一下,怎么去手动对游戏包进行签名。1)keytool:生成数字证书,即密钥,也就是上面说到的扩展名为.keystore的那类文件;keytool -genkey -v -keystore it-homer.keystore -alias it-

2017-05-11 14:29:41 2117

原创 Eclipse 导入.aar文件

今天搞了一个分享的SDK,包括微信,QQ,新浪微博的分享。而我是用Android studio 开发的,接入微信和微博时,发现导出的资源中,微博是以.aar文件导出。毕竟做出来的SDK,给别人使用时,最好是jar包形式。下面是我怎么使用Eclipse来导入.aar文件供大家学习,希望大家能顺利导入,及时完成项目。1.首先将我们的.aar文件通过解压工具解压,或者把后缀名改为.zip再进行解压,

2017-05-10 17:47:13 5499 1

原创 SDK动态设置自定义属性

问题:渠道方在自定义控件的属性,在xml中配置了自定义属性值,动态循环通过R文件获取映射,导致有的发行方没有处理R文件的重新编译,运行时,闪退找不到对应的资源id。解决方案:通过TypeArray类代码去设置对应的属性,这样就反编译出包时,再次去重新编译R文件处理了。......

2022-08-29 11:54:09 244 2

原创 shell 实现cp配置的so库文件夹,打包时相对应文件夹复制

#!/bin/bash# 应用包 build apk script# file name build-tencent.sh# 使用说明# 1.把全部打包资料都准备好放到一个目录里# 2.把build.sh复制到这个目录里# 3.用文本编辑器打开build.sh配置里面的信息# 4.在当前目录下执行脚本# ---------配置信息 BEGIN----------#当前目录BASEDIR=$(dirname $0)"/"# 游戏APK名字,注意不带后缀gameApk="sdk1

2021-07-17 18:26:02 365

原创 Android Studio 3以上内置支持Java 8的相关配置

Android Studio 3以上内置支持Java 8的相关配置Error:Error converting bytecode to dex:Cause: Dex cannot parse version 52 byte code.This is caused by library dependencies that have been compiled using Java 8 or above.If you are using the 'java' gradle plugin in a libra

2021-01-21 15:17:21 215 1

原创 接入ysdk,dex分包shell脚本

#!/bin/bash# 应用包 build apk script# file name build-tencent.sh# 使用说明# 1.把全部打包资料都准备好放到一个目录里# 2.把build.sh复制到这个目录里# 3.用文本编辑器打开build.sh配置里面的信息# 4.在当前目录下执行脚本# ---------配置信息 BEGIN----------# ---打包资源配置---# 渠道名称channelName="tencent_ysdk"#当前目录BASED

2020-07-27 17:05:42 344

原创 Kotlin 开发环境配置 - Android Studio

Android studio 默认的java语言,使用kotlin开发android开发的话,首先需要配置开发环境。有两种方法:1、使用android studiio 3.0版本,默认支持kotlin2、在低于3.0版本的android studio中添加kotlin的插件下面主要讲一下在低于3.0版本的android studio 中添加kotlin插件的步骤:1、下载kotl...

2019-11-27 17:11:22 312

原创 android 调用 js方法

1、在调用js方法传参时,如果没放在onPageFinished回调中调用,没起效果,调用不到,为了防止以后再遇到这种坑,记录一下!contentWebView.getSettings().setJavaScriptEnabled(true);contentWebView.getSettings().setAllowFileAccess(true);contentWebView.get...

2019-10-31 11:40:02 617

versioncode_1.0.0-capsule.jar

直接通过apk来获取versioncode值,便于第三方直接调用获取!减少直接通过命令行获取apk太多信息,精准获取并便于进行第三方操作!

2020-04-28

开发者json解析工具

解析json,更清晰了解json的结构,

2018-11-19

空空如也

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

TA关注的人

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