如何让自己的代码显得高深莫测 - Android

安卓逆向工程必备:Frida常见报错大全及一键修复指南 本文是安卓逆向工程中Frida工具的实用排错指南,针对Frida常见报错提供了一键修复方案。文章详细解析了环境配置、连接注入、Java层交互及脚本编写中的典型错误,如版本不匹配、内存访问违规和类加载问题,并给出了具体的排查步骤与代码示例,帮助开发者快速构建稳定的动态分析环境。 阅读详情

人生得意须尽欢,莫使金樽空对月。 我们从小就有许多规则要求着做事思考,也常有人在耳边说应该这么做应该这么说。而自己内心最真实想法和观点慢慢都被磨灭,只留下了一副没有主见躯壳。不应该就这样沉寂,要大胆的去尝试未知。写代码也一样,都说我们程序员闷、话少,其实我们只是把想说的话用代码进行了表达。所以写代码就要随心所欲。

类和资源文件命名一定要随心所欲

💩 相信你一定对类的命名有过苦恼,我们应该减少这种烦恼保护我们的头发👷

Good 👍🏻

open class caoxian666 { /*……*/ }

Bad 👎🏻

open class DeclarationProcessor { /*……*/ }

任何时候都不要写注释

💩 反正没人会读你的代码,应该会有人让你修电脑💻

Good 👍🏻

var niubi = 9527

Bad 👎🏻

// 666是根据网络名句得出:宁睡曹县一张床,不买上海一套房
// @查看: <新闻介绍>
var caoxian = 666;

函数和变量命名一定要操纵自如

💩 我们应该减少对命名的思考,这样就会有更多时间去思考代码逻辑等问题🍺

Good 👍🏻

fun caozongziru() { /*……*/ }
var abc = 1

Bad 👎🏻

fun initializeView() { /*……*/ }
var pageSize = 20

尽最大努力把代码写成一行

💩 许多人都有一目十行的能力,写成一行可以大大提高阅读代码的效率🤘

Good 👍🏻

AlertDialog.Builder(context).setView(0).setTitle(R.string.dialog_title).setMessage(R.string.dialog_message).setIcon(0) .create()

Bad 👎🏻

AlertDialog.Builder(context)
            .setView(0)
            .setTitle(R.string.dialog_title)
            .setMessage(R.string.dialog_message)
            .setIcon(0)
            .create()

UI布局中的控件一定要密密麻麻

💩 UI布局中控件嵌套应越多越多,这样才能体现自己的逻辑思考能力⛲

Good 👍🏻

<RelativeLayout>
 <LinearLayout>
  <RelativeLayout>
   <ImageView/>
    ...
   <TextView/>
  </RelativeLayout>
 </LinearLayout>
</RelativeLayout>

Bad 👎🏻

<android.support.constraint.ConstraintLayout>
 <ImageView/>
  ...
 <TextView/>
</android.support.constraint.ConstraintLayout>

编写你不会使用的代码

💩 做人要未雨绸缪,写代码也是一样,要编写自己不使用的代码为未来做打算📬

Good 👍🏻

fun countPrimes(n:Int,count:Int): Int {
    var sum  = 9527;
    return n + count;
}

Bad 👎🏻

fun countPrimes(n:Int,count:Int): Int {
    return n + count;
}

写代码应深谋远虑

💩 不做没有把我的事情,也不写没有把握的代码。不要忘记编写自己的B计划🛀

Good 👍🏻

fun countPrimes(n: Int): Int {
    if (n < 0) {
        return -1
    } else {
        return n + 666;
    }
    //我的B计划
    return 0;
}

Bad 👎🏻

fun countPrimes(n: Int): Int {
    return if (n < 0) {
       -1
    } else {
       n + 666;
    }
}

不用关心异常错误

💩 一切都在掌握之中,即使捕获了异常也不需要上报,因为你不一定能解决它🎃

Good 👍🏻

try {
   ...
}catch (e: SomeException) {
   //caoxian666...
}

Bad 👎🏻

try {
   ...
}catch (e: Exception) {
    reportedException(e)
}

简洁明了的编写代码

💩 傻瓜都能写出能让机器理解的代码,而优秀的程序员才能写出让傻瓜理解的代码

Good 👍🏻

fun getTomorrowDate(): DateTime {
    Thread.Sleep(24 * 60 * 60 * 1000)
    return DateTime.Now
}

最后

在这里我也分享一份由几位大佬一起收录整理的 Flutter进阶资料以及Android学习PDF+架构视频+面试文档+源码笔记 ,并且还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料……

这些都是我闲暇时还会反复翻阅的精品资料。可以有效的帮助大家掌握知识、理解原理。当然你也可以拿去查漏补缺,提升自身的竞争力。

如果你有需要的话,可以前往 GitHub 自行查阅。

LANFound:安卓局域网通信开源项目实战 回顾整个 LANFound 项目,我们并没有发明什么新技术,而是把已有的工具玩出了新高度。它教会我们一件事:真正的创新往往不在于用了多先进的框架,而在于是否解决了真实的痛点。在这个万物上云的时代,我们反而更需要一种“离线优先”的思维。不是所有场景都需要互联网,也不是所有数据都值得上传云端。有时候,最快、最私密、最可靠的通信方式,就是两台设备面对面地直接对话。而这,正是局域网通信的价值所在。 阅读详情

相关推荐

AndroidJunkCode:Android马甲包生成垃圾代码插件

Android垃圾代码生成插件 此插件用于做马甲包时,减小马甲包与主包的代码相似度,避免被OPPO、VIVO等应用市场识别为马甲包。 使用方法 根目录的build.gradle中: buildscript { repositories { mavenCentral() } dependencies { classpath "com.github.qq549631030:android-junk-code:1.0.7" } } 由于jcenter即将关闭后续版本将不再发布到jcenter,转为发布到mavenCentral,groupId从原来的"cn.hx.plugin"改为"com.github.qq549631030" app目录的build.gradle模块中: apply plugin: 'com.android.ap

Android 生成垃圾代码插件

(5)生成的垃圾代码位置:D:\AndroidStudioProjects\ChromaCam\app\build\generated\source\junk\release\java\com\fair\chromacam\gp\_cfdhob1。(3)在AndroidManifest.xml 添加package属性:配置包名。(1)在Project级别的build.gradle中添加配置。(2)在app级别build.gradle中添加配置。(6)将生成的垃圾代码拷贝到项目中,应用。

Steve_XiaoHai的博客 2753

垃圾代码生成器

iOS 垃圾代码生成器 用来提审iOS马甲包。。。。。。。。。。

Android 创建垃圾代码

因为最近的工作原因,需要创建垃圾代码避免代码相似度过高 找到一个库,使用方法如下 根目录下的build.gradle dependencies { classpath "com.github.qq549631030:android-junk-code:1.1.2" } allprojects { repositories { maven {setUrl("https://jitpack.io")} } } app目录下的budild.gradle appl...

qq_37324563的博客 2460

Android本地代码生成器

可以自动生成Android本地代码。 解压后,在项目根目录下面运行genjni.sh(先把里面的genjni.jar放在一个地方,然后把genjni.sh里面的路径改下)。之后,如果有本地方法声明,就会生成本地文件和编译文件。

junkcode-generator:非常基本的垃圾代码生成器,可以轻松扩展为更多语言:)

垃圾代码生成器 这是生成任何语言的垃圾代码的非常基本的应用程序(当前:java,python,c ++,c#,如果您需要更多的话,可以请求pullrequest:>)。 特征: 设置方法,变量的前缀。 设置变量,方法和方法中变量的计数。

Android垃圾代码生成插件使用

内涵配置方式及methodCount使用方法。

qq_36185283的博客 1421

SpamCode:垃圾代码生成器

SpamCode 垃圾代码生成器 整理转载 原版: 本工具用于应对苹果对重复应用的审核(Guideline 4.3 Design Spam),避免苹果机审检测概率。 主要功能 修改工程名 修改类名前缀 扫描工程中的代码,生成同等数量的 Category 文件,文件中及是同等方法数量的垃圾代码。 修改 xxx.xcassets 文件夹中的 png 资源文件名。 删除代码中的所有注释和空行。 使用 使用源码 下载源码。 用 Xcode 打开工程并配置参数。如图 运行 使用二进制文件,在终端中执行 SpamCode $ ./SpamCode \ /Users/imac/Desktop/App \ -deleteComments 参数说明 (必填) 源码文件夹绝对路径(如:/Users/imac/Desktop/App) -modifyProjectName [原名称]>[新名称] 修改工程名。程

【无标题】android 代码混淆 垃圾代码制造

android 代码混淆 垃圾代码制造

W_han__的博客 2021

联想Win10改Win7设置BIOS指南

通过本文的指南,你应该能够成功地在联想Win10电脑上设置BIOS以支持Windows 7的安装和运行。尽管Windows 10提供了许多现代化的功能和改进,但如果你因特定需求而更倾向于使用Windows 7,那么本文提供的步骤将帮助你顺利实现这一转换。请记住,在更改操作系统前务必做好充分的准备工作,并在安装过程中保持耐心和细心。祝你安装顺利!

mmoo_python的博客 2042

oracle p6 破解版下载,Primavera P6项目管理软件 16~17 图文详细安装教程(附下载)

Primavera P6 Professional项目管理软件结合了Oracle和Microsoft SQL Server关系数据库,是一款非常好用且功能强大的综合的项目管理软件(PPM) 解决方案,主要用于土建等方面的施工计划分析,具有进度时间安排与资源控制功能的多用户、多项目系统,支持多层项目分层结构、角色与技能导向的资源安排、记录实际数据、自定义视图以及自定义数据,本文主要为大家图文详细介绍...

weixin_33978451的博客 4922

Android谷歌上架马甲包垃圾代码混淆使用教程

本项目是一个用于生成垃圾代码的工具,旨在帮助开发者在Android应用上架到Google Play时,通过混淆代码增加应用的安全性,提高通过机器审核的几率。工具包括生成垃圾代码、混淆文件、字符串加密等功能,支持纯Java和XML布局的两种混淆方案。 ## 2、项目快速启动 ### 环境准备 - Android Studio - Java Development Kit (JDK) ### ...

gitblog_00002的博客 1065

cpp中auto, auto &和const auto &的区别

笔者初学cpp,如有纰漏,请见谅并指正。 用在哪 auto用于推断类型,具体可用于声明变量时根据初始化表达式自动推断该变量的类型,也就是可用在for循环。 也可以用于声明函数返回值的占位符。 怎么用 这里主要讲for循环中三者的区别 直接说结论 auto auto用于copy一份集合中的数据,对于这种情况,在循环体中不论怎么修改copy的数据,是不会影响到原有集合中的数据的。 举个简单的例子 int arr[5] = {0, 1, 2, 3, 4}; cout << "使用auto" <&

NinoSun的博客 3177

利用Chrome在pc端调试安卓手机上的网页

今天真是意外收获,Chrome果然还是更牛逼一些啊,突然觉得手机开发没那么高深莫测了,哈哈^_^ https://developer.chrome.com/devtools/docs/remote-debugging

wzx19840423的专栏 2009

麒麟银河操作系统V10下ffmpeg的完整部署指南(兼容Linux系统)

本文提供在麒麟银河操作系统V10上从源码编译部署FFmpeg的完整指南,涵盖环境准备、核心依赖库(如x264)编译、FFmpeg本体配置安装、系统集成及常见问题排查。步骤详细,同样适用于Ubuntu、CentOS等主流Linux发行版,帮助用户打造功能强大的多媒体处理工具链。

weixin_29205061的博客 256

YOLOv8改进策略【注意力机制篇】| CVPRW-2024 分层互补注意力混合层 H-RAMi 针对低质量图像的特征提取模块

许多证据表明层次化网络对图像恢复(IR)任务通常不太有效,因为IR的目标是逐个预测像素值(密集预测),而缩小特征图会丢失重要的像素级信息。然而,层次化结构有降低时间复杂度以及学习语义级和像素级特征表示的优点。为了弥补缺点并利用优点,设计了H - RAMi层。

Limiiiing的博客 379

2026-06-14 安卓逆向之安卓基础认识0

以下内容不是教程,仅为记录本人学习过程。纯属个人主观看法,随着学习的推进可能会有“后期批判前期”的情况出现,请勿将本文章视作内容准确的技术分享。说是学习过程其实更像是发牢骚吧,尽量多写一些学习过程中的感悟吧。

qq_51861517的博客 644

【保姆级教程】教你如何轻松获取MIMIC数据使用权限

文章非常详细地介绍了MIMIC数据库申请使用的全部步骤。

越努力 越幸运 6600

android4.0root,最强大一键ROOT 轻松搞定安卓4.0

【IT168 资讯】现如今,越来越多的Android手机用户开始ROOT手机,感受DIY的乐趣。若以ROOT为关键词搜索时会发现,铺天盖地,满屏都是教授如何获取ROOT权限的教程。ROOT教程如同天书然而,当随便打开一个教程之后才明白,要想从ROOT手机中获取DIY的乐趣,其实并不是那么容易的事。首先、其次、然后、再、最后,一系列复杂的专业名词和繁琐的操作步骤会让你觉得原来ROOT是这么一门高深莫...

weixin_39938331的博客 2293

基于STM32L4XX、HAL库的 TMC2660C-PA 驱动程序设计

/ 默认灵敏度和电流。// 20/31最大电流。

zhusl6688的博客 386

C语言中errno与perror()函数

宏errno和perror()函数都是在stdlib.h中定义的。 1 stdlib.h头文件 stdlib.h头文件即standard library标准库函数头文件,包含了C、C++语言的最常用的系统函数,该文件中还包含了C语言标准库函数的定义。 2 errno宏 errno宏在stdlib.h中的定义为 #define errno (*_errno()) errno宏用于保存程...

hou09tian的博客 1万+

安卓Java跨类传递参数

有时候一个方法,需要传递很多参数,奈何本事实在粗浅,网上多数是通过继承Application类,然后感觉掌握不了,于是暂时有了个迂回暴力勉强能用的思路。 思路 三个类,其中一个类作“过渡”用,把需要保存的参数都交给ta就行。 需要时就可直接调用。 示例 1.Main ...

一二说 960

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

让我们来聊一聊插件化吧---高深莫测

现如今插件化的思想和应用在Android上越来越多了,各式各样的方案也是层出不穷,这篇文章旨在告诉大家插件化的核心思想是什么,又有什么样的实现方式。 前言 首先,这篇文章的题目为什么不沿用我之前xxxx!xxxxx这样的风格呢,因为我觉得这样风格太中二了。。 其次,我写这篇文章的原因是因为前些时候看到有大神写了一篇文章Android 插件化的 过去 现在 未来,里面的内容很不错,特别

朱志辉的博客 1431

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android版疯狂填字第三关,iOS/安卓版《疯狂填字3》答案攻略第140关

《疯狂填字3》,最创新的填字玩法,挑战你的脑细胞,现在就下载。疯狂填字是最早的在线中文填字游戏,现在你可以在苹果手机上玩填字也可以在安卓手机上面玩,既打发了时间,又增长了知识,你准备好挑战了吗?下面6137游戏网将为您带来最新最全的《疯狂填字3》答案攻略。《疯狂填字3》答案攻略第140关横1:2013年聚集众多老港星的动作巨制答案:光辉岁月横2:比喻敌人出动全部兵力进行侵扰答案:倾巢出动横3:李宇...

weixin_36214833的博客 1115

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

从零到一:用UTS插件为UniApp项目解锁原生Android能力

本文详细介绍了如何从零开始使用UTS插件为UniApp项目扩展原生Android能力。通过一个调用原生Toast的实战案例,展示了UTS如何让前端开发者使用熟悉的TypeScript语法直接调用原生API,从而大幅简化开发流程、降低学习成本,并实现接近原生应用的性能体验。

c2d3e4f的博客 371

安卓原生系统_有效解决跳过原生安卓系统开机验证问题的方法,赶快上车

Hello,大扎好。今天来和大家分享我使用安卓手机刷第三方类原生系统的一个经验--跳过谷歌开机验,。如果你是用安卓类原生第三方系统的,我们都知道每次刷完机开机后进入的第一个界面就是一个大麻烦,想绕开谷歌开机验证,第一种:有人说拔掉手机卡,就可以跳过了。我也试过其实对于现在的大多数都不灵了,毕竟即使没有数据网络,但是现在无处不在无线网络也是个问题。第二种有人说给手机共享一个“合适的”网络环境,这个是...

weixin_39814378的博客 1万+
上一篇: 35岁程序员,危机的开始与结束,以及下一个五年计划
下一篇: Android Module依赖关系的可视化实现
懂你的大海
博客等级 码龄6年 9049粉丝 1381原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值