android
大炮走火
只是过客
展开
-
android deeplink设置
应用B在需要唤起应用A的地方中添加如下代码,即可启动应用A。因此应用A的deeplink就是myapp://start。可填写到抖音等需要app的deeplink参数的平台中!原创 2024-06-14 10:43:26 · 133 阅读 · 0 评论 -
androidstudio调试apk简洁教程
反编译需调试的apk,在androidmainfest.xml的application标签中添加代码。通过edit configurations,添加一个运行config,并记住端口号,示例为2048。androidstudio通过如果这个选项打开调试目标的apk。然后通过androidstudio离线安装上述插件。然后回编及签名,并安装到手机中,然后运行。通过attach,并选择你的app包名。然后你就可以愉快调试你的apk了。安装Smalidea,下载地址。然后在smali代码中打上断点。原创 2022-10-18 11:04:48 · 4862 阅读 · 0 评论 -
android自定义带圆角的webview,并解决圆角背景有黑边的问题
android自定义带圆角的webview,并解决圆角背景有黑边的问题原创 2022-06-16 12:02:54 · 1159 阅读 · 0 评论 -
linux运行zipalign报错“error while loading shared libraries: libc++.so“
如果是linux64位系统那么将lib64文件(含有libc++.so)放到和zipalign同一目录中,如图点击这里下载zipalign及lib64原创 2022-05-19 19:04:14 · 481 阅读 · 0 评论 -
Android 解决so库冲突的问题
问题出现的场景:在同时引入的多个AAR/JAR文件时有重名的so文件。解决方法:在 app的build.gradle中加入以下内容// android {}下packagingOptions { pickFirst '**/*.so'}转载 2022-04-24 17:47:36 · 4064 阅读 · 0 评论 -
小米,红米等手机安装apk报错Targeting R+(version 30 and above) requires the resources.arsc...
2个解决方法:1.将apk修改为targetApi28(不要30即可)2.apk用v2加签原创 2022-03-14 15:53:41 · 1546 阅读 · 0 评论 -
android ios webview,本地加载vue打包好的项目
步骤一:将路由模式改为hash步骤二:打开project_root/config/index.js修改如下内容...省略module.exports = { build: { // Template for index.html index: path.resolve(__dirname, '../dist/index.html'), // Paths assetsRoot: path.resolve(__dirname, '../dist'),原创 2021-12-11 11:16:42 · 6312 阅读 · 1 评论 -
androidstudio,gradle执行系统命令,执行终端命令
在windows中:task execute(type:Exec){ commandLine "cmd", "/c","dir"}在mac中:task execute(type:Exec){ commandLine 'bash', '-c', "ls"}原创 2021-11-12 16:32:08 · 999 阅读 · 0 评论 -
android library引用so失败
导致so失败的问题有很多,我这边只说这么一个情况工程中有library引用到so库,主工程引用library但运行起来提示找不到so此时需要在主工程的gradle中添加以下代码:android { defaultConfig { applicationId "com.hlggames.aslc" ndk { abiFilters 'armeabi-v7a','x86' } } }...原创 2021-09-17 17:59:09 · 317 阅读 · 0 评论 -
android事件分发原理及源码简读
当我们点击一个button的时候,正常情况下会触发这么一系列的事件// 分发Activity.dispatchTouchEvent -> ViewGroup.dispatchTouchEvent -> ViewGroup.onInterceptTouchEvent -> View.dispatchTouchEvent ->// 消费View.onTouch(setOnTouchListener) -> View.onTouchEvent -> View.原创 2021-08-02 14:47:28 · 103 阅读 · 0 评论 -
android事件分发
本文属于转载,仅方便自己做记录原文链接:https://www.jianshu.com/p/e99b5e8bd67b对于 dispatchTouchEvent,onTouchEvent,return true是终结事件传递。return false 是回溯到父View的onTouchEvent方法。ViewGroup 想把自己分发给自己的onTouchEvent,需要拦截器onInterceptTouchEvent方法return true 把事件拦截下来。ViewGroup 的拦截器onInter转载 2021-04-07 17:52:35 · 123 阅读 · 0 评论 -
android代码安全保护,防反编译机制
这里参考了大疆的app,djiplot的代码保护机制,流程大概如下反编译自己的apk,拿到核心的代码jar文件对jar文件进行加密处理(加密工具百度找)将加密后的jar放到一个app壳的assets中通过classLoader方式加载自己加密过的jar(至于解密过程可配合jni完成)说明:这里涉及两个app,一个是核心app,另一个只是壳app;核心app打包成jar,并加密,壳app配合jni对加密后的jar进行加载及解密基本上能很好防止被破解代码!...原创 2021-03-30 17:47:08 · 382 阅读 · 0 评论 -
android EventBus源码原理分析
本文的源码使用到EventBus3.2.0版本本文所示的源码将会忽略与核心逻辑无关的代码,被忽略的代码将使用省略号表示以下为eventBus最简单的使用代码:public class TestActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // 注册eventbus EventBus.getDefault().register(原创 2021-02-21 18:18:26 · 245 阅读 · 1 评论 -
android webview和js交互,js无法调用java问题
我们都知道webview要和js交互,必须要有这么一句代码//webview中注入交互对象“TagOne”webView.addJavascriptInterface(new JsInterfaceObj(webView), "TagOne");那么js调用java://java部分代码class JsInterfaceObj{ @JavascriptInterface public void test() { Log.e("tag","hello world");原创 2020-12-16 16:59:47 · 535 阅读 · 0 评论 -
AndroidStudio NDK开发,解决“C++无法自动补全及跟踪代码”,提示“Cannot find declaration to go to”
解决办法:1.在local.properties文件中添加一句代码ndk.dir=C\:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\ndk\\21.3.6528147# 填上你NDK的路径2.在module的build.gradle中添加添加android { ... sourceSets.main { jni.srcDirs = ['src/main/cpp'] //有些项目是这个目录,根据你的实际情况原创 2020-12-04 10:17:29 · 2612 阅读 · 1 评论 -
解决“SDK location not found. Define location with sdk.dir in the local.properties“
在你的项目根目录中新建一个local.properties(如果没有)内容填入你实际的android-sdk目录:sdk.dir=C\:\\Users\\admin\\AppData\\Local\\Android\\Sdk即可解决问题!如图:原创 2020-11-11 11:28:29 · 18300 阅读 · 3 评论 -
android打包v1和v2签名对渠道打包的影响
v1签名是对jar进行签名,V2签名是对整个apk签名要是用v2签名,那么你就无法修改"META-INF"里的内容了,也就是说无法打入渠道信息原创 2020-11-06 10:57:13 · 284 阅读 · 0 评论 -
android-view横竖屏切换,不受activty控制
简单的横竖屏切换只需要在mainfest设置就好,这个不多说;但有时候有特殊的需求,无论横竖屏都要求特定一个方向;那么直接上代码: DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int width = displayMetrics.widthPixels; // 屏幕宽原创 2020-09-07 18:02:46 · 688 阅读 · 0 评论 -
android,targetSdkVersion遇到过的坑
targetSDK <= 22:优点:便于数据统计。因为不会受运行时权限影响,默认拥有储存及电话等统计用到的重要权限;缺点:当设备版本大于6.0时不能使用安装apk功能;26 <= targetSDK <= 28优点:某些硬核渠道要求不低于26;缺点:需要运行时权限;targetSDK>28优点:暂未发现;缺点:高版本手机引用so时可能有异常,且不适用于ysdk;...原创 2020-06-11 16:48:10 · 1009 阅读 · 0 评论 -
android webview读取本地相册时“Not allowed to load local resource”
不废话,按照以下操作即可//重写shouldInterceptRequest webView.setWebViewClient(new WebViewClient() { @Override public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest webResourceRequest) { F转载 2020-05-28 11:33:58 · 612 阅读 · 0 评论 -
android带消息红点的视图,超简洁的实现
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.widget.Button;public class RedButton extends Button { private Paint paint =原创 2020-05-27 15:49:47 · 1031 阅读 · 0 评论 -
java、smali转dex
打开cmd;cd C:\Program Files\Java\jdk1.8.0_221\bin;\\实际路径根据你java的安装路径javac D:\com\test\Activity.java;\\运行没有报错的话会生成D:\com\test\Activity.classjar cvf D:\test.jar D:\com; \\将生成的.class文件打包成jarcd D:\Android-SDK\build-tools\26.0.2 \\切换路径至android-sdk,其中26.0.2.原创 2020-05-25 10:55:46 · 1496 阅读 · 0 评论 -
Android AIDL 简洁使用教程
新建2个app在第一个app中新建AIDL文件,如图:在aidl文件中新增一个方法,并rebulid project新建一个service,并新建内部类继承IMyAidlInterface.Stub,并重写上一步新增的方法;将service注册至mainfest运行第一个app至手机中,至此,第一个app的操作完成;复制第一个app的aidl至app2中,且路径要一致!路径要一致!...原创 2020-04-15 19:11:01 · 999 阅读 · 1 评论 -
Android反编译,smali语法使用备忘录
“.locals n”在smali中注入代码时,注意所注入局部变量的个数,比如有两个局部变量,那么".locals n"应更改为".locals n+2"{p0}p0 一般指的是类的自身或超类,当使用到invoke-super时,改变量写为超类的完整路径...原创 2020-03-24 14:29:26 · 158 阅读 · 0 评论 -
YSDK的巨坑!登录没有回调!
错误日志2020-02-27 10:51:41.654 28610-28610/com.tencent.tmgp.gzbg.xxx W/System.err: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/user/0/com.tencent.tmgp.gzbg...原创 2020-03-24 14:27:35 · 1591 阅读 · 1 评论 -
unity3D出现-your-hardware-does-not-support-this-application,sorry!
在对u3d游戏反编译添加代码时,运行修改后的apk出现”your hardware does not support this application“的提示时,删除其他so文件,只留下v7a和x86这两个文件夹原创 2020-03-24 14:50:12 · 2112 阅读 · 0 评论 -
android-增加SeekBar的拖动区域,更容易拖拉
布局文件参考 <LinearLayout android:layout_width="120dp" android:id="@+id/sb_parent_layout" android:layout_height="25dp" android:gravity="center_vertical"> &...原创 2020-03-24 14:25:51 · 1773 阅读 · 1 评论 -
android隐藏软键盘
InputMethodManager imm = (InputMethodManager) mActivity.getSystemService(Activity.INPUT_METHOD_SERVICE); imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);原创 2020-03-24 14:24:32 · 683 阅读 · 0 评论 -
Android属性动画简写
以下以最简单的代码实现view向左平移至屏幕最左边位置 ObjectAnimator animator = ObjectAnimator.ofFloat(view, "translationX", getX(), 0); animator.setDuration(100); animator.start();...原创 2020-03-24 14:23:50 · 165 阅读 · 0 评论 -
Android屏幕旋转导致progressDialog崩溃解决方案
当progressDialog.show()时,此时屏幕旋转,导致progressDialog失去activity对象,此时若progressDialog.dismiss()的话,会导致崩溃;解决办法:在AndroidMainFest.xml中对应的activity加上:android:configChanges=“keyboardHidden|orientation|screenSize”...原创 2020-03-24 14:22:54 · 628 阅读 · 0 评论 -
Android可按住拖拉的View,悬浮窗拖拉效果
package com.bg.sdk.floatwin;import android.app.Activity;import android.view.MotionEvent;import android.view.ViewGroup;import android.widget.ImageView;/** * @author ljj * @create-time 2019/9/1...原创 2020-03-24 14:22:29 · 283 阅读 · 0 评论 -
Android多渠道打包技巧记录
不同维度引用libs文件 xxx = 维度名字 xxxApi fileTree(dir: 'src/xxx/libs', include: ['*.jar'])原创 2020-03-24 14:21:51 · 100 阅读 · 0 评论 -
android对于内存泄露和内存溢出的见解和简要解决方案
内存泄露内存没有及时的被收回可理解为内存泄露;例如Activity中有一个耗时操作,耗时操作中有对Activity强引用;当Activtiy被用户关闭时,耗时操作还没结束的话,此时activtiy不能被释放,造成内存泄露!解决方案:耗时操作中使用弱引用指向activtiy,这样activtiy的生命周期就不受耗时操作的影响了!例子: static class MyTask ex...原创 2020-03-24 14:21:21 · 189 阅读 · 0 评论 -
AndroidStudio遇到某些三方包因网络原因无法下载的处理
有时候我们引入某些第三方包时,会由于网络原因导致无法下载此时这么做在项目根目录的gradle.properties文件中添加如下代码,然后刷新gradlesystemProp.http.proxyHost=127.0.0.1systemProp.http.proxyPort=1080systemProp.http.proxyUser=useridsystemProp.http.proxy...原创 2020-03-24 14:20:18 · 1112 阅读 · 0 评论 -
androidstudio误删jar文件后,再次引入,识别不了的问题
怎么导入jar就不说了,看下识别不了的jar的大小是不是0kb原创 2020-03-24 14:19:13 · 432 阅读 · 0 评论 -
android-onCreate中获取view的宽高
view.post(new Runnable() { @Override public void run() { int width = view.getWidth(); int height = view.getHeight(); } });原创 2020-03-24 14:18:26 · 425 阅读 · 0 评论 -
android创建桌面快捷方式,适配8.0,避免重复创建
直接上代码,可直接复制使用 //创建桌面快捷方式 private void createShortCut() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { String shortcutId = "com.itx.shortcut"; boolea...原创 2020-01-15 11:46:59 · 1168 阅读 · 0 评论 -
android8.0以上,DownloadManager下载状态一直返回PAUSED_WAITING_TO_RETRY?或是-1
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); /**设置漫游状态下是否可以下载*/ request.setAllowedOverRoaming(false);其实这是由于setAllowedOverRoaming设置为true引起,当a...原创 2020-01-09 16:37:23 · 1942 阅读 · 0 评论 -
app图标,适配android8.0
有没试过把apk安装到android8.0系统的手机上面时,图标是默认的安卓机器人?如果有的话跟着下面的步骤走就行了!步骤一:打开gradle,设置compileSdkVersion为26或以上步骤二:在res文件夹中创建一个mipmap-anydpi-v26的文件夹,若存在则忽略,如图所示;步骤三:右键上述的文件夹,新建一个Image Assert,如图所示步骤四:如图,在path中选择图标,然...原创 2018-05-18 13:56:15 · 1392 阅读 · 0 评论 -
android实用备忘录
去掉ListVIew默认点击效果: android:listSelector="@android:color/transparent" 实现全屏效果(隐藏系统状态栏): int flag = WindowManager.LayoutParams.FLAG_FULLSCREEN;Window window = getWindow();window.setFlags(f...原创 2017-06-01 16:24:28 · 3291 阅读 · 1 评论