- 博客(412)
- 资源 (19)
- 收藏
- 关注
原创 解决ios编译swift报错pcm was built: mtime changed
编译ios工程失败时,其中的几个swift文件报以下错尝试过clean,清空/Users/tomes/Library/Developer/Xcode/DerivedData文件夹都没有效果。
2023-12-25 12:01:43
527
原创 解决xcode 运行不了iPhone 15 iOS 17.1 设备的问题
最近要查看一下ios 17.1的设备的性能,但是当前版本的Xcode运行不了。
2023-12-22 20:16:15
2797
原创 MAC M1 ndk-build ERROR: Unknown host CPU architecture: arm64
为MAC M1解决ndk-build报错ERROR: Unknown host CPU architecture: arm64
2022-06-28 15:12:57
2224
原创 C++ 浅拷贝和深拷贝与坑
前言已从工作三年的公司离职,今天我久违的徒弟惨叫着发来一个bug……看到之后,我有些沉默。我怀疑不帮他,微信铃声可能会一直响个不停。这个问题有些基础,但也是c++新手容易犯的错误之一问题由于代码保密,这里简单的抽象出一个demo,简单说明下问题class Phone{public: Phone() { mBrand = new char(20); } ~Phone() { if (mBrand != NULL
2022-05-04 01:47:38
1278
原创 Android 自动化触发GC
问题最近有个小需求,能通过自动化对app进行GC回收对于app的处理无外乎主动调用System.gc()或者使用adb命令直接进行GC回收解决方法方法一在代码里的某个方法调用System.gc(),如我申明一个receiver,然后通过接受外不广播,去调用System.gc()完成gc回收的触发,如public class GCReceiver extends BroadcastReceiver { private static final String TAG = "GC
2022-03-31 16:39:33
4862
原创 AS编译时More than one file was found with OS independent path ‘lib/arm64-v8a/libc++_shared.so‘. If you
今天土地再次惨嚎原来他被老大安排了一个集成sdk的任务问题集成sdk的时候,android studio报错More than one file was found with OS independent path 'lib/arm64-v8a/libc++_shared.so'. If you are using jniLibs and CMake IMPORTED targets解决方法找到对应工程的build.gradle android { pa
2022-03-25 20:44:37
5513
转载 GCC安全编译选项
转载自:http://www.jackieathome.net/archives/796.html前言今天在学习编译器堆栈保护技术时,突然发现gcc的安全编译选项我还从来没去了解过发现一篇写的不错的帖子,进行转载保存以CMake为例,给出安全编译选项的定义关闭RPATH特性set(CMAKE_SKIP_RPATH TRUE)开启栈保护set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong")或者
2022-03-17 20:21:38
1715
原创 Android安全扫描提示未使用编译器堆栈保护技术的解决方法
前言目前市面上不少安全扫描apk并评估的公司会针对以下这项进行扫描防御原理和攻击原理,看最下面的参考,别人写的很好,我就没必要再累述了未使用编译器堆栈保护技术风险描述:为了检测栈中的溢出引入了Stack Canaries漏洞缓解技术。在所有函数调用发生时,向栈帧内压入一个额外的被称作canary的随机数,当栈中发生溢出时canary将被首先覆盖,之后才是EBP和返回地址。在函数返回之前,系统将执行一个额外的安全验证操作,将栈帧中原先存放的canary和.data中副本的值进行比较,如果两
2022-03-17 19:29:29
7687
原创 Android Studio 显示Git的Local Changes窗口
前言因为使用新的mac环境,下载了最新的android studio今天在做开发后,想看看本地修改了哪些文件,结果发现本人熟悉的Local Changes窗口居然找不到了,不习惯的让我浑身难受解决方法打开Preferences,选择Version Control,选择commit,并取消Use non-modal commit interface勾选,点击ok生效好了,熟悉的界面又回来了...
2022-03-16 19:49:19
6811
原创 MAC下配置 adb 环境变量
前言今天又换成mac进行开发了,拿到一个全新的mac环境,又得重新搭建环境,我陷入了沉思在下载了android studio的前提下,不需要再额外下载什么了,只需要将adb的路径加入到环境变量中设置步骤找到Android/sdk的路径修改bash_profile使用vi命令打开.bash_profilevi ~/.bash_profile向.bash_profile文件中写入以下内容export ANDROID_HOME="Android/sdk所在路径"ex
2022-03-08 18:56:16
5594
原创 Android App清除数据的方案
前言最近MIUI13上出了个未经应用商店安装,算是未知来源。AndroidID,通知,网络权限没授权则默认关闭。安装app时允许虚拟身份ID: 允许允许虚拟身份ID前获取一次AndroidId: attachBaseContext获取AndroidId, 此时还没有点允许虚拟身份ID,此时获取的AndroidId:0000000000000000,允许虚拟身份后后再获取也是不会变化的,需要杀进程重新打开app才能获取正确的AndroidId。 允许虚拟身份ID后获取AndroidI
2022-02-22 20:23:34
5017
3
转载 Android中RelativeLayout和LinearLayout性能对比及分析
转载自:https://www.jianshu.com/p/8a7d059da746先看一些现象吧:用eclipse或者Android studio,新建一个Activity自动生成的布局文件都是RelativeLayout,或许你会认为这是IDE的默认设置问题,其实不然,这是由 android-sdk\tools\templates\activities\BlankActivity\root\res\layout\activity_simple.xml.ftl 这个文件事先就定好了的,也就是说这是
2022-02-17 17:43:55
426
原创 attachBaseContext里调用getApplicationContext 返回 null的底层原因和解决方法
前言昨天徒弟终于能把rn工程跑起来了,高兴还没一天,今天在哀嚎着找到我……徒弟说,“我就在application里的attachBaseContext初始化sdk,把application作为对象传进去,里面拿着这个对象去获取context”application.getApplicationContext()“为什么这个值是null呢?我其他地方拿都是正常可以拿到的啊!!!!” @Override protected void attachBaseContext(Co
2022-01-11 19:01:39
3751
原创 Android studio编译中Connect to maven.google.com:443[xxx] failed: connect timed out的解决方法
前言最近徒弟分到了一个rn的模块开发工作,但rn,大家懂的,Android studio有时需要科学上网下载必要的rn库。又是一个徒弟哀嚎的日子。问题连接maven.google.com超时具体编译报错如下:> Could not resolve all artifacts for configuration ':react-native-qr-decode-image-camera:releaseRuntimeClasspath'. > Could not reso
2022-01-10 19:45:43
3764
原创 懒人专用-最简明的JNI日志打印
前言又是一个带新人的日子,徒弟有新模块需要打日志调试,结果徒弟扭扭捏捏的。好吧,看来他又遇到了不好意思问的问题了。对于大多数Android开发同学,注意力都放在java层,平时很难有机会去写c层。一旦涉及c层编码的时候,大部分同学都会碰到日志输出的问题。这里介绍一个最简单的日志使用方法,拿去就用。主要用于熟悉和临时代码调试。如果有更多的需求,还是建议使用更加强大的日志库使用步骤1、使用Android studio的同学在新建工程的时候选择native工程【会使用cmake的通用不用看
2022-01-06 17:45:37
2752
原创 Android安全全景图-目录导航
上方是规划中的全景图,最终可能会调整结构,这么多年学习,搞的技术总是零零散散,没有体系化的总结梳理,虚度了不少光阴。由于全景图任何一块儿的说明都是一个很大的工作,我不确定自己有毅力能将上面列出来的东西都给写出来。我想把研究的热更,插件化,安全沙箱,双开,鸿蒙都给写出来,想写的太多了……但我又太懒了。总之能写多少就写多少吧,希望各位能够鼓励支持我,完成他吧...
2021-05-10 16:57:23
195
1
原创 Android Studio工程引用三方库,项目报错却能正常编译
问题今天又遇到一个申请的问题向工程里面引入一个三方aar库,Android studio不能正常索引补全三方库的类和方法,手动import包,手写对应方法的调用,虽然Android studio报错找不到类和方法,但却可以正常编译。获取到编译好的apk后,进行反编译,查看应用确实是存在对应的类和方法,调用处也能正常跳转。好吧,看来是Android studio的老毛病了,没想到在新版本上也有相同的问题。我当前使用的环境是解决方法清除Android Studio的缓存并重启
2021-05-07 10:49:16
870
2
转载 Linux定时任务与开机自启动脚本
转载自:https://www.cnblogs.com/asche/p/10240994.html开机自启动脚本网上常见的脚本开机自启方法是:假设要自启的脚本位于 /home/user/test.sh给脚本可执行的权限sudo chmod +x /home/user/test.sh将脚本文件放到 /etc/init.d/ 目录下sudo cp /home/user/test.sh /etc/init.d链接到/etc/rc.d/sudo ln -s /etc/init
2021-05-07 10:11:28
1281
原创 【鸿蒙】日志工具的使用
在前面我们已经能够顺利的编译并运行我们的第一个程序hello world!为了今后能走的更远,我们现在需要点基础的装备,日志工具。学会了日志工具的使用方法,会对我们以后的Harmony应用开发带来极大的帮助。使用HarmonyOS的日志工具HiLogHarmonyOS提供了HiLog日志系统(Android的日志工具是Log),让应用可以按照指定类型、指定级别、指定格式字符串输出日志内容,帮助开发者了解应用的运行状态,更好地调试程序。输出日志的接口由HiLog类提供。在输出日志前,需要先调用
2021-04-29 17:20:04
2176
1
转载 JNI内存泄露处理方法汇总
转载自:https://blog.csdn.net/wangpingfang/article/details/53945479#在c++中new的对象,如果不返回java,必须用release掉,否则内存泄露。包括NewStringUTF,NewObject。如果返回java不必release,java会自己回收。jstring jstr = env->NewStringUTF((*p).sess_id); ...env->DeleteLocalRef( jstr); jo
2021-04-29 11:46:48
1260
原创 Android 12手机运行 targetSdkVersion 30及以上apk不能正常访问其他应用的ContentProvider
今天徒弟A又苦着脸过来求助,色色超纲了……我们的sdk需要兼容市面各种各样的app,所以用户的app的targetSdkVersion为任何版本都是可能的问题targetSdkVersion 30及以上的应用 A使用ContentResolver去访问 应用B的ContentProvider的数据结果报错如下:2021-04-16 17:22:25.276 31960-31960/? E/ActivityThread: Failed to find provider info for co
2021-04-19 21:19:02
5474
2
原创 Android逆向之JEB动态调试apk
已经快4年没使用jeb动态调试apk了,前一段时间被徒弟问到怎么动态调试apk的dex文件时,由于没记录jeb的动态调试方法,只能给他eclipse的动态调试作为参考。Android逆向之动态方式破解apk前奏篇(Eclipse动态调试smail源码)上面的方法对新人来说太不友好,所以还是把使用jeb的动态调试的方法写一下,以便帮到更多的人。准备工具首先你得有jeb工具,吾爱破解,看雪都能搜索到,我这里就不提供了。安装调试应用adb install xxx.apkhttps:/
2021-04-15 21:38:39
1799
原创 解决Android studio CMake 3.10 or higher is required. You are running version 3.6.0-rc2 编译错误
问题:最近其他组在给项目添加新库,使用Android studio编译新工程,编译报错 Execution failed for task ':sdk:generateJsonModelRelease'.> Build command failed. Error while executing process /home/wangqiang/Environment/android_sdk/cmake/3.6.4111459/bin/cmake with arguments {
2021-04-13 21:06:50
3944
原创 Android 12 targetSdkVersion为31应用的安装问题
targetSdkVersion 31的应用在Android 12上安装时可能会存在两种安装不上的情况。问题一:adb: failed to install xxx.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Scanning Failed.: No signature found in package of version 2 or newer for package com.tomes.sharefile]解决:分析与解决请
2021-03-30 15:25:03
15178
4
原创 Android 12刷机教程
可供刷机的设备Pixel 5, Pixel 4a, Pixel 4a (5G), Pixel 4, Pixel 3a, Pixel 3a XL, Pixel 3, and Pixel 3 XLAndroid12镜像及刷机教程https://developer.android.google.cn/about/versions/12/download实际刷机经历对于新机没刷过OEM的,第一件事需要将OEM打开1.开机设置拿到新手机开机,众多设置能跳过则跳过,先不要设置网络,ping
2021-03-29 10:54:29
15008
1
原创 DevEco Studio 启动时报错Plugin “xxx“ was not loaded: required plugin “Remote Device (China)“ is disabled.
问题在打开鸿蒙工程,启动DevEco Studio时,报如下错误:16:55 Plugin Error Problems found loading plugins: Plugin "DevEco Test Services" was not loaded: required plugin "Remote Device (China)" is disabled. Plugin "Hdm Support" was not loaded: required plugin "Remot
2021-03-18 17:14:31
413
转载 Android性能调优--StrictMode
转载自:https://blog.csdn.net/weixin_40763897/article/details/89018306性能无外乎就是CPU密集型或I/O密集型两种。StrictMode是一个开发者工具,常用于捕获在应用主线程中发生的磁盘I/O、网络访问违例等问题。StrictMode具体能检测什么呢StrictMode主要检测两大问题:线程策略(TreadPolicy)和VM策略(VmPolicy)。ThreadPolicy线程策略:1.自定义的耗时调用,使用detect
2021-03-17 11:16:41
335
原创 Android 12的行为变更和版本兼容思路
一年一度的产品线兼容活动又开始了。Android系统每更新一次系统,对开发者而言都是持续而漫长的挑战。自15年6.0的兼容以来,每年给公司产品线app做版本兼容,成了我每年的保留节目……结束完产品线app对鸿蒙系统的兼容适配后,今天开始搞Android12的兼容处理工作。同学们,android12预览版已出,工头叫我们搬砖了。目的产品线app兼容Android12思路先看看官方的时间规划,以便我们了解官方每个时间节点在做什么,最重要的是知道他的beta版什么时候出,什么时候最终发
2021-03-16 20:10:45
6282
原创 windows安装Node JS及配置
Windows7以上安装配置步骤1.登录Node.js官方网站,下载Node.js软件包。请选择LTS版本,Windows 对应的软件包。由于我的是64位的,所以选择2.解压后的文件内容如下(本人将解压文件放置到了D盘,并重命名为nodejs)3.配置环境变量,首先编辑path用户变量,添加nodejs的解压地址4.新建系统变量NODE_PATH,变量值为解压文件下的node_modules文件夹路径5.打开cmd命令行,输入npm -v,出现安装的版本信息,表名配置成功..
2021-03-15 19:23:08
482
原创 【鸿蒙】创建你的第一个Harmony项目
【鸿蒙】Harmony应用开发-目录导航不管是什么语言,Hello Word几乎是每一个编程人员编写的第一个程序。自我开始接触编程起,每学习一门语言编写的第一个程序就是Hello Word。按照惯例,咱们的第一个Harmony项目也从Hello Word开始。创建Hello Word项目...
2021-03-11 19:49:37
995
原创 【鸿蒙】手把手带你搭建Harmony应用开发环境
鸿蒙应用开发-目录导航下载与安装软件DevEco Studio是鸿蒙的应用开发IDE,DevEco Studio目前仅支持Windows和macOS系统,下面将针对两种操作系统的软件安装方式进行介绍。Windows环境运行环境要求为保证DevEco Studio正常运行,建议您的电脑配置满足如下要求:操作系统:Windows10 64位(当然win7也能运行,只是node.js需要下载对应的版本) 内存:8GB及以上 硬盘:100GB及以上 分辨率:1280*800像素
2021-03-11 16:55:02
2219
原创 【鸿蒙】Harmony系统技术架构
技术架构总览HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。HarmonyOS技术架构如下所示。HarmonyOS的系统和Android一样,包含四层。内核层内核子系统:HarmonyOS采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,Kernel Abstract L
2021-03-11 14:43:05
4012
2
原创 c++ connect函数Address family not supported by protocol
问题:在c++中执行网络的connect函数,出现报错Address family not supported by protocol函数原型: int connect(SOCKET s, const struct sockaddr * name, int namelen);解决方法:结构体sockaddr:struct sockaddr { sa_family_t sa_family; char sa_data[14];};将结构体sockaddr的sa_family
2021-02-04 11:29:37
2404
原创 You need to use a Theme.AppCompat theme (or descendant) with this activity.
问题:Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.原因:Activty继承自android.support.v7.app.AppCompatActivty,而不是android.app.Activty。解决方法:方法一:使用Theme.AppCompat的主题android:theme
2021-01-29 10:00:46
139
原创 Android studio R8 编译报错
问题> Task :app:transformClassesWithDexBuilderForProduceDebugcom.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/closetou/Documents/ygej/app/build/intermediates/transfo
2021-01-22 17:26:33
6790
4
转载 问题解决 react-native android打包报错:Error: Duplicate resources
转载自:https://blog.csdn.net/qq_33466661/article/details/106901621问题react-native项目,在打Android包时,报错:Error: Duplicate resourcesFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:mergeReleaseResources'.> [ra.
2021-01-11 16:32:27
978
转载 面向报文(UDP)和面向字节流(TCP)的区别
转载自:https://blog.csdn.net/ce123_zhouwei/article/details/8976006面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。面向字节流的话,虽然应用程序和TCP的交互是
2021-01-08 15:14:27
2975
1
从源码解析Context思维导图
2017-09-26
Activity销毁流程
2017-09-26
Activity启动流程思维导图
2017-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人