2,运行错误,当code 不能混淆的时候,我们必须要正确配置,否则程序会运行出错,这种情况问题最多。 3,调试苦难,出错了,错误堆栈是混淆后的代码 ,自己也看不懂。...自定义View Android Parcelable Android R 文件 Android Parcelable 枚举 各个开发人员必须检查自己的code 是否用到反射 ,和其他不能混淆的地方...-outjars {class_path} 指定处理完后要输出的jar,war,ear和目录的名称 -libraryjars {classpath} 指定要处理的应用程序jar,war...打包出来的程序如何调试 一旦打包出来,就不能用eclipse的logcat去看了,这里可以用android sdk中ddms.bat的tool来看,一用就发现和logcat其实还是一个东西,就是多了个设备的选择...* extends android.app.Activity {【保护指定类的成员,如果此类受到保护他们会保护的更好 】 public void *(android.view.View); }
Android Video Trimmer是一款专为Android平台设计的强大开源视频处理工具,它通过FFmpeg实现视频裁剪功能,并支持裁剪后的视频压缩功能。...Android Video Trimmer的源码托管地址为https://github.com/iknow4x/Android-Video-Trimmer(星星数1.1k),最新版本基于Android...13(API 34)和Kotlin 1.9开发,可见该框架的源码更新十分及时。...https://github.com/iknow4x/Android-Video-Trimmer/archive/refs/tags/v1.0.0.zip。...裁剪之后的视频片段放在App安装路径下的cache目录,完整路径为“我的手机/Android/data/com/iknow.android/cache/视频片段的文件名.mp4”。
前言 下面介绍两个反编译工具 jadx是一个用于反编译Android APK文件的开源工具,静态反编译,查找索引功能强大 jeb和IDA很像,属于动态调试,可以看java汇编也可以生成伪代码,还可以动态...反编译apk文件 搜索不能为空字符串 找到MainActivity函数 package com.tencent.testvuln; import android.annotation.SuppressLint...; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences...a; private Handler b = null; private EditText c; private EditText d; @Override // android.app.Activity...getMenuInflater().inflate(R.menu.main, menu); return true; } @Override // android.app.Activity
适合在Application中保存的全局变量,主要是一些Activity不方便传输的对象,包括: 1、Java容器类和需要使用方法的对象;因为Intent不能直接传递容器数据,同时序列化对象只能传输数据却不能传输方法...Application内存读写的实现思路 首先写一个类MainApplication继承自Application,该类要采用单例模式,内部声明自身类的一个静态成员对象,在创建app时把自身赋值给这个静态对象...其次在每个Activity中声明MainApplication类的成员对象,同时获取MainApplication的静态对象赋值给该成员对象,于是每个Activity都持有了MainApplication...接着在具体Activity中,就可以通过该成员对象访问MainApplication内部的公共对象和公共方法了。...", desc, item_map.getKey(), item_map.getValue()); } return desc; } } 主页面的代码 import android.app.Activity
扫描后直接进入百度,这个地址也可以用于动态,或者是你从服务器中得到的地址 url = "https://www.baidu.com"; //这里的logo是系统自带的,通过...logoBmp = BitmapFactory.decodeResource(getResources(), R.mipmap.demo); //通过ZXing框架将地址和logo...图片加到里面,生成二维码之后赋值给codeBmp; codeBmp = ZXingUtilsTest.createQRImage(this, url, logoBmp);...package com.lanjing.qgcodedemo; import android.app.Activity; import android.content.Context; import...= 0; x x++) { if (bitMatrix.get(x, y)) { pixels
下面是给图片添加圆角的代码片段: public static Bitmap getRoundImage(Bitmap bitmap, int roundPixels) { //创建一个和原始图片一样大小位图...下面是给图片添加边框的代码片段: 方式一 public static Bitmap getFrameImageLight(Context context, Bitmap bmp, Bitmap frame...android.annotation.TargetApi; import android.app.Activity; import android.graphics.Bitmap; import android.os.Build...android.app.Activity; import android.graphics.Bitmap; import android.os.Build; import android.os.Bundle...import com.aqi00.lib.util.BitmapUtil; import com.example.exmimageadd.widget.SignatureView; import android.app.Activity
标题栏ActionBar ActionBar是在Android3.0之后引入的,所以Android2.x之前的版本不能直接使用ActionBar。...显示或者关闭ActionBar的方式有如下几种: 1、在AndroidManifest.xml中给activity设置无标题栏的主题,就关闭ActionBar。...; import android.app.ActionBar; import android.app.ActionBar.OnNavigationListener; import android.app.Activity...; import android.app.Activity; import android.os.Build; import android.os.Bundle; import android.view.Gravity...; import android.app.Activity; import android.app.SearchManager; import android.app.SearchableInfo; import
利用Android WebView漏洞 0x00 说明 测试程序来源: https://github.com/t4kemyh4nd/vulnwebview 可以直接下载app.apk进行测试 下载安装后打开长下面的样子...,Username:vuln Password:webview 需要登录一下 0x01 Android WebView说明 WebView是Android类的扩展,允许将网页显示在Activity页面布局中...androidx.fragment.app.FragmentActivity, androidx.activity.ComponentActivity, androidx.core.app.ComponentActivity, android.app.Activity...添加下面配置会在网页的java script脚本和应用程序的客户端java代码之间创建接口。...XSS和token盗取。
Afinal简介 Afinal 是一个android的sqlite orm 和 ioc 框架。...FinalActivity模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。...FinalBitmap的内存管理使用lru算法,没有使用弱引用(android2.3以后google已经不建议使用弱引用,android2.3后强行回收软引用和弱引用,详情查看android官方文档),...是不能省略的,因为afinal的finalDb最终会调用setter去给实体类的属性赋值。...java.util.List; import com.example.afinaltest.entity.Book; import net.tsz.afinal.FinalDb; import android.app.Activity
这些大量的代码通常只是为了启动,因此不能为实际功能模块代码和资源留出足够的空间来解决 4 MB 字节的限制。...' } } ... } 在上面的代码片段中,我选择了一个名为 aia-proguard-rules.pro 的文件用于我的 Android Instant App(安卓即时应用程序)专用...android.app.Activity ......我们可以通过任何手段摆脱哪些来自框架的类(我们不需要包含这些规则,因为它们不是应用程序 APK 的一部分),比如 android.app.Activity?...但这会让本教程的其余部分(例如筛选框架类)变得更加复杂,所以我将它作为练习给读者你。
1 package cn.share.bananacloud.coustomViews.coustomEdittextInput.MyViewPager; 2 3 import android.app.Activity...position " + position); 64 if(isLooper && images==3){ 65 /** 3张的特殊处理,在先右滑了一定张数后,...再左滑,此时初始化的 距离当前位置 的第前2张和后面一张会重复 (x-2) == (x+1) */ 66 View view = getItemViewListener.getItemView...2,max,max-1 */ 77 /*if(images>2){ // 最小情况的判断,因为此时的 container 还没有移除下标 0 的图片,再添加的话会造成不能重复添加的异常...1 package cn.share.bananacloud.coustomViews.coustomEdittextInput.MyViewPager; 2 3 import android.app.Activity
在 Android 上使用的是 OpenGL ES,它是 OpenGL 的子集,在 OpenGL 的基础之上裁剪掉了一些非必要的部分,主要是针对手机、PAD 和游戏主机等嵌入式设备设计的。...假设我们定义了一个点的坐标(4.3,2.1),也就是它的 X 轴坐标和 Y 轴坐标,而 OpenGL 最后会把我们定义的坐标映射手机屏幕的实际物理坐标上。...显卡的渲染管线就是显示核心的重要组成部分,是负责给图形配上颜色的一组专门通道。渲染管线的数量是决定显示芯片性能和档次的最重要的参数之一。 现阶段的显卡都是分为顶点渲染和像素渲染的。...数据缓存区中的顶点坐标会赋值给 a_Position ,a_Position 会传递给 gl_Position。 而 gl_PointSize 则固定了点的大小为 30。...绑定了变量之后,接下来就是给他们赋值了,对于uniform类型变量,由于是固定值,所以直接调用glUniform4f方法给其赋值就好了,而attribute类型变量,则需要对应顶点数据中的值了,vertexArray.setVertexAttribPointer
核心代码: package com.demo.app; import android.app.Activity; import android.content.Intent; import android.os.Bundle...如上所示,Android 程序员可以决定一个 Activity 的“生”,但不能决定它的“死”,也就时说程序员可以启动一个 Activity,但是却不能手动的“结束”一个 Activity。...当你调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:告诉 Activity Manager 该 Activity 实例完成了相应的工作,可以被“回收”。...当启动完成后,它会被隐藏。...核心代码: package com.demo.app; import android.app.Activity; import android.os.Bundle; import android.os.Handler
(intent); 例子: import android.app.Activity; import android.content.Intent; import android.os.Bundle...而我们则使用android的Camera类提供了startPreview()和stopPreview()来开启和关闭预览....数据的接口,他分别必须实现3个方法 surfaceCreated()这个方法是surface 被创建后调用的 surfaceChanged()这个方法是当surfaceView发生改变后调用的...mySurface = new MySurfaceView(this); setContentView(mySurface); } } 而且必须给应用添加权限...注意,这个方法必须在startPreview()和stopPreview()中间。
获得LayoutInflater 实例后,就可以调用inflater.inflater()方法来查找并实例化布局文件了,常用于获得ListView的每个Item布局。...WidgetSample工程的listviewsample模块,在app/main/res/layout/目录下创建custom_arrayadapter_layout.xml文件,在其中填充如下代码片段...类,重写getView()方法,具体代码如下: package com.jinyu.cqkxzsxy.android.listviewsample.adapter; import android.app.Activity...通过LayoutInflater获取到的View对象,实际上就有由列表项布局文件,包含ImageView和TextView的LinearLayout。...然后找到ImageView和TextView组件,填充内容给TextView,并根据内容的首字母来判断ImageView要显示的字母图标。
主类,播放方波(提供byteDate)和正弦波。 2...., 否则连续赋58个-32768给数组,返回数组(音频数据)。...isRunning 关闭线程 4.线程:AudioTrackZThread 定义一个short[44100]数组 通过算法:32767*Sin((2*3.1415926*8250.0/44100.0)*i)给数组赋值...写入音频数据到音频硬件进行播放 package scl.wavedome2; import scl.waveout.WaveOutF; import scl.waveout.WaveOutZ; import android.app.Activity..., 0x22, 0x42 }; len = byteDate.length; byteDate1 = new byte[] { 0x11, 0x22, 0x42, 0x1A, 0x24, 0x13
意图过滤器(action ="X")被定义为仅在应用 A 内部工作,所以这是预期的行为。...下面的图 4.1-5 展示了一个场景,其中在应用 B 和应用 A 中定义了相同的意图过滤器(action ="X")。...; import org.jssec.android.shared.Utils; import android.app.Activity; import android.content.Context;...; import java.util.List; import java.util.Set; import android.app.Activity; import android.app.ActivityManager...PrivateActivity.java package org.jssec.android.activity.singleinstanceactivity; import android.app.Activity
这给用户很深刻的反馈并增强操作的直观感受。 组件使用白色主题,明亮的颜色和图片贯穿始终。此外,我决定试验渐变来增加深度和体积。渐变可能是主要的显示特征,会吸引新用户的注意。...[image] 圆的中心 a_UV 包含 x 和 y,它们的值每个顶点都不同,取值范围是 0 ~ 1。我只给顶点着色器 a_UV 和 v_UV 两个入参,因此每个片段都可以插入 v_UV。...{ ... } private fun drawImage(canvas: Canvas) { ... } 之后我将 texture 单元赋值给...GlSurfaceView 中检测用户触摸事件 GLSurfaceView 和其它的 Android view 一样可以响应用户的点击事件。...() + (y - it.y).sqr()).toDouble()) <= it.radius } } 当找到选择的圆后,我会修改它的半径和 texture。
package loonggg.net.databinding; import android.app.Activity; import android.databinding.DataBindingUtil...这就是我们要将的Activity中的那两行代码了,它把实体类和布局文件进行了绑定。...loonggg.net.databinding.bean.User "/> 这里需要注意的是:import 并不能像...: 不支持的表达式: this super new Explicit generic invocation 带id的控件的赋值方式 对于xml文件中控件的赋值,其实也是可以在java文件中,用java来实现的...我就以最上面那个简单的小例子来说,假如给一个TextView设置的id如下: <TextView android:id="@+id/name" android
不能为null。 * 如果不发送任何数据,则必须创建此处给出的空地块。 * @param reply 要从目标接收的封送数据。...= kim.hsl.aidl_demo.Student.CREATOR.createFromParcel(data) , 调用了 Student 类的反序列化方法 , 将参数先进行反序列化 , 然后赋值给...{ // 通过 Parcel 池获得两个对象 , 分别用于输入和输出 // 输入对象 android.os.Parcel _data = android.os.Parcel.obtain...* 要正确使用此功能,您必须在顶级应用程序组件(a{@link android.app.Service}、 * {@link android.app.Activity}或{@link android.content.ContentProvider...* 例如,如果您在{@link android.app.Activity}中使用此函数, * 则您的活动的进程可能会在活动未启动时被终止; * 如果以后重新创建活动,则需要创建新的活页夹, * 并再次将其交回正确的位置