用户接口registerReceiver frameworks/base/core/java/android/content/ContextWrapper.java public Intent...filter) { return mBase.registerReceiver(receiver, filter); } frameworks/base/core/java/android...RemoteException e) { return null; } } …… } // BroadcastReceiver frameworks/base/core/java/android...} …… final Handler getHandler() { return mH; } …… } // frameworks/base/core/java/android
proguard 原理 Java代码编译成二进制class 文件,这个class 文件也可以反编译成源代码 ,除了注释外,原来的code 基本都可以看到。...为了防止重要code 被泄露,我们往往需要混淆(Obfuscation code , 也就是把方法,字段,包和类这些java 元素的名称改成无意义的名称,这样代码结构没有变化,还可以运行,但是想弄懂代码的架构却很难...在分析class 的同时,他还有其他两个功能,删除无效代码(Shrinking 收缩),和代码进行优化 (Optimization Options)。...二, 我们代码依赖于系统的接口,比如被系统代码调用的回调方法,这种情况最复杂。 三, 是我们的java 元素名称是在配置文件中配置好的。...为了避免风险,你可以只是混淆部分关键的代码,但是这样你的混淆的效果也会有所降低。 常见的不能混淆的androidCode Android 程序 ,下面这样代码混淆的时候要注意保留。
Android 代码混淆 简介 在我们日常开发中,对已经开发完成的源代码,需做一些代码混淆工作,以对代码起到一种保护和降低安装包体积的作用。...开启混淆 在app的build.gradle文件中如下代码: android { .........buildTypes { release { //开启代码混淆 minifyEnabled true //开启资源混淆...'), 'proguard-rules.pro' } } } 配置混淆文件 在app的proguard-rules.pro文件中编写混淆代码即可 混淆语法 命令 作用...######################### # # 基本指令区域(没什么别的需求不需要动) # ############################################# # 代码混淆压缩比
android代码执行 Android API level 16以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用WebView.addJavascriptInterface方法,...该漏洞最早公布于CVE-2012-6636【1】,其描述了WebView中addJavascriptInterface API导致的远程代码执行安全漏洞。...同时,在2014年发现在Android系统中webkit中默认内置的一个searchBoxJavaBridge_ 接口同时存在远程代码执行漏洞,该漏洞公布于CVE-2014-1939[7], 建议开发者通过以下方式移除该...Object对象 Google Android < 4.4 受到此漏洞的影响。...API等于高于17的Android系统。
下载Android源码简要流程 : a....初始化repo文件 : repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.3_r1 , 这里要下载...开始下载 :repo sync , 执行该命令就可以开始下载Android源码; 下载Android内核源码简要流程 : a....下载Android源代码 1....下载Android内核源代码 1.
修改上面代码,添加Intent.FLAG_ACTIVITY_CLEAN_TOP标记 //结果一样,没有完全退出app,后台还有其进程在运行 findViewById(R.id.button3).setOnClickListener...使用标准退出代码System.exit(0) //不过退出方式粗暴,退出的动画不是很美,但不过后台的进程还是被终结了 findViewById(R.id.button3).setOnClickListener...使用android.os.Process //后台的进程被终结了 findViewById(R.id.button3).setOnClickListener(new OnClickListener(){...public void onClick(View v){ android.os.Process.killProcess(android.os.Process.myPid()); } }); 目前为止
package com.yangguangfu.cn; import android.app.Activity; import android.os.Bundle; import android.view.View...; import android.view.View.OnClickListener; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener...; import android.view.animation.ScaleAnimation; import android.widget.ImageView; public class ScaleAnimationDemoActivity
如果开启了混淆,Proguard默认情况下会对所有代码,包括第三方包都进行混淆,可是有些代码或者第三方包是不能混淆的,这就需要我们手动编写混淆规则来保持不能被混淆的部分。 2....Proguard作用 Android中的“混淆”可以分为两部分,一部分是 Java 代码的优化与混淆,依靠 proguard 混淆器来实现;另一部分是资源压缩,将移除项目及依赖的库中未被使用的资源(资源压缩严格意义上跟混淆没啥关系...-dontoptimize 关闭优化 -optimizationpasses n 表示proguard对代码进行迭代优化的次数,Android一般为5 混淆(Obfuscation):默认开启,增大反编译难度...混淆后默认会在工程目录app/build/outputs/mapping/release下生成一个mapping.txt文件,这就是混淆规则,我们可以根据这个文件把混淆后的代码反推回源本的代码,所以这个文件很重要...#-------------------------------------删除代码区--------------------------------------# 删除代码中Log相关的代码 -assumenosideeffects
命名规范和排版 java成员类 基础类型优先排在上方 java相关类排在基础类型下方 android相关类排在java相关类下方 整体排序按照访问权限:private->default->protected...类方法 android中方法排序首先生命周期方法在最上方,排序按照自然生命周期的排序 其余方法按照调用先后顺序往下排列 方法体内不要多余无意义的空行,代码紧凑 ?
Toast消息弹出模板 Toast.makeText(this,“内容”,Toast.LENGTH_SHORT).show(); 有的时候会报错,使用下面的代码: Looper.prepare();
Android 代码混淆机制 由于Android项目是基于java语言的,而java属于高层抽象语言,易于反编译,其编译后的程序包包含了大量的源代码变量、函数名、数据结构等信息,根据其编译打包后的APK...文件,可以非常容易的得到 近乎源代码质量 的反编译代码。...原理 android平台的混淆原理是把代码中原来有具体含义的包名,类名,变量名,方法名等名称全部替换成按顺序排列的无意义的英文字母a、b、c….这样代码结构没有变化,还可以运行得到一样的结果,并且就算代码被反编译出来...具体方法 比较常用的方法有以下两种: 一、通过eclipse混淆代码 启用代码混淆 找到Android项目目录下的project.properties文件,如果需要对项目进行全局混码,只需要进行一步操作...编写混淆脚本 找到Android项目目录下的“proguard-project.txt”文件,在proguard-project.txt文件中,你需要做的就是指定混淆规则,还有指明要过滤那些文件或代码块
在开发的时候经常会用到webview,必然会涉及到webview与客户端的交互,比如在网页上进行某个操作后,需要在app上显示一个提示,提示内容由网页提供,这时候就需要js来调用客户端的java代码了。...在js中通过"TestObject"对象调用客户端方法 TestObject.showToastContent("haha") 备上一段官网关于这个内容的代码: class JsObject {
一、混淆的意义 混淆代码并不是让代码无法被反编译,而是将代码中的类、方法、变量等信息进行重命名,把它们改成一些毫无意义的名字,同时也可以移除未被使用的类、方法、变量等。...(1)minifyEnabled minifyEnabled为true的作用:启用代码混淆、压缩APK; minifyEnabled会对资源进行压缩,多余的代码在打包的时候就给移除掉了。...不仅仅是代码,没有被调用的资源同样也会被移除掉,因此minifyEnabled除了混淆代码之外,还可以起到压缩APK包的作用。...(4)proguard-android.txt和proguard-rules.pro proguard-android.txt:代表系统默认的混淆规则配置文件,该文件在/tools/proguard下,...mapping.txt : 列出了原始的类、方法和名称与混淆代码间的映射。 seeds.txt : 列出了没有混淆的类和方法。 usage.txt : 列出congapk中删除的代码。
原标题:Android 开发怎样做代码加密或混淆 对于Android开发技术人员来说,隐藏代码或是混淆代码至关重要。试想自己辛辛苦苦赶工出来的产品,被其他开发者反编译后轻松拿走。...华清创客学院Android开发讲师在这里和读者一起交流一下怎样做代码加密或混淆这个问题?...Android 开发怎样做代码加密或混淆: 通常来说Proguard对一般用途来说足够了,但是也需要注意一些程序风格,增强proguard的效果。...当然如果隐藏代码的要求比较高,还是用native好了。 一般情况下,这样简单的三步下来。一般开发者应该就已经无法下手了。当然,有些比较高端或是机密的产品就需要更高端的技术完成了。...华清创客学院包括零基础入门Android开发、初中高三级跳课程,适合对Android开发感兴趣的所有开发者学习交流。
概述 每个团队都会有一套优良统一的代码规范,而规范的检测如果依赖于人工检测就不太现实。 checkstyle是一个可以帮我们检查Java代码规范的工具。checkstyle具有很强的配置性。...-- 代码块检查 --> <!...git commit执行checkStyle 为了保证代码库提交的代码都是符合规范的,就必须在 git commit前执行 checkStyle检查代码,但是如果依赖于人工这是不可靠的,好在有 GitHook...进行代码检查 在CheckStyle控制面板 ? 右键检查当前文件 ?
设置全屏的方法 A.在java代码中设置 /** 全屏设置,隐藏窗口所有装饰 */ requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow()....:name=".Login.NetEdit" android:label="@string/label_net_Edit" android:screenOrientation...="portrait" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"> <category android:name="android.intent.category.DEFAULT"...获取屏幕尺寸与密度 Android 根据屏幕大小设置字体 Android Activity 全屏、横竖屏设置 Android模拟器无法上网问题 15、查看电池使用情况 Intent intentBatteryUsage
原文地址 把重点记录下 https://source.android.com/source/code-style.html 1.不要忽略异常(空的catch字句) 不要不捕获异常 2.不要使用Findlizer...Android不使用finalizer。在大多数情况下,您可以从具有良好异常处理的终结器中完成所需的操作。...3.Java库规则 旧的代码使用旧的库 在创建新的组件不要使用不推荐使用的库 有使用Android的Java库和工具的约定。...Java中的三个预定义注释的Android标准实践是: @Deprecated:当不建议使用注释元素时,必须使用@Deprecated注释。...14.将首字母缩略词作为词 将缩写词和缩写词作为命名变量,方法和类中的单词,以使名称更易读: 由于JDK和Android代码库在首字母缩略词之间非常不一致,因此几乎不可能与周围的代码一致。
sdk path, etc) local.properties # Proguard folder generated by Eclipse proguard/ # Log Files *.log # Android...Studio Navigation editor temp files .navigation/ # Android Studio captures folder captures/ # IntelliJ...you do not want to check your keystore files in. #*.jks # External native build folder generated in Android...fastlane/Preview.html fastlane/screenshots fastlane/test_output fastlane/readme.md 总结 以上所述是小编给大家介绍的Android
当需要创建一个与子线程绑定的Handler时,标准代码如下: class LooperThread extends Thread { public Handler mHandler; public
Android代码混淆常见配置 1.manifest中注册的都不能混淆,如果混淆了就找不到了,所以一下类不能被混淆,一般保持原样。...-keep public class * extends android.app.Activity -keep public class * extends android.app.Application...,而 -dontwarn android.support.v4.** 不要警告找不到android.support.v4.** { }这个包里面的类的相关引用,防止可接受警告的出现影响到程序的运行。...mapping.txt: 列出原始类的方法、字段与混淆后的代码间的映射,这个文件比较重要,如果你的代码混淆后会产生bug的话,log提示中是混淆后的代码,希望定位到源代码的话就可以根据mapping.txt...sends.txt: 列出了未被混淆的类和成员 usage.txt 列出了在apk中删除的代码 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139353.html
领取专属 10元无门槛券
手把手带您无忧上云