Java 反编译器返回哪些仅注释的方法?
我查看了安卓银行应用程序的源代码,我发现在大多数应用程序中,有一些方法什么都不做,而在它们内部,只有一些奇怪的注释代码 看看这个例子:Java 反编译器返回哪些仅注释的方法?,java,android,bytecode,Java,Android,Bytecode,我查看了安卓银行应用程序的源代码,我发现在大多数应用程序中,有一些方法什么都不做,而在它们内部,只有一些奇怪的注释代码 看看这个例子: /* Error */ public final void b() { // Byte code: // 0: aload_0 // 1: getfield 68 example/com/PackagePMB:y Lc/y; // 4: ifnonnull +15 -> 19 // 7:
/* Error */
public final void b()
{
// Byte code:
// 0: aload_0
// 1: getfield 68 example/com/PackagePMB:y Lc/y;
// 4: ifnonnull +15 -> 19
// 7: aload_0
// 8: new 640 c/y
// 11: dup
// 12: aload_0
// 13: invokespecial 643 c/y:<init> (Lc/w;)V
// 16: putfield 68 example/com/PackagePMB:y Lc/y;
// 19: getstatic 645 c/g:m B
// 22: ifeq +18 -> 40
// 25: aload_0
// 26: getfield 174 example/com/PackagePMB:p Ljava/util/Stack;
// 29: invokevirtual 648 java/util/Stack:size ()I
// 32: ifle +8 -> 40
// 35: aload_0
// 36: invokevirtual 457 example/com/PackagePMB:j ()V
// 39: return
// 40: aload_0
// 41: getfield 174 example/com/PackagePMB:p Ljava/util/Stack;
// 44: invokevirtual 651 java/util/Stack:removeAllElements ()V
// 47: aload_0
// 48: getfield 176 example/com/PackagePMB:u Lc/ag;
// 51: aload_0
// 52: getfield 558 example/com/PackagePMB:f Lc/c;
// 55: invokevirtual 190 c/ag:a (Landroid/view/View;)V
// 58: aload_0
// 59: getfield 176 example/com/PackagePMB:u Lc/ag;
// 62: invokevirtual 192 c/ag:b ()V
// 65: new 653 c/p
// 68: dup
// 69: getstatic 61 example/com/PackagePMB:a Lexample/com/PackagePMB;
// 72: invokespecial 654 c/p:<init> (Landroid/content/Context;)V
// 75: astore_1
// 76: aload_1
// 77: invokevirtual 655 c/p:a ()V
// 80: aload_1
// 81: invokevirtual 656 c/p:b ()V
// 84: aload_1
// 85: invokevirtual 660 c/p:getReadableDatabase ()Landroid/database/sqlite/SQLiteDatabase;
// 88: astore 10
// 90: aload 10
// 92: ldc_w 662
// 95: iconst_0
// 96: anewarray 128 java/lang/String
// 99: invokevirtual 668 android/database/sqlite/SQLiteDatabase:rawQuery (Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
// 102: astore 11
// 104: aload 11
// 106: invokeinterface 673 1 0
// 111: ifle +55 -> 166
// 114: aload_0
// 115: new 282 java/lang/StringBuilder
// 118: dup
// 119: ldc_w 675
// 122: invokespecial 285 java/lang/StringBuilder:<init> (Ljava/lang/String;)V
// 125: aload 11
// 127: invokeinterface 673 1 0
// 132: invokevirtual 289 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder;
// 135: ldc_w 677
// 138: invokevirtual 294 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
// 141: invokevirtual 297 java/lang/StringBuilder:toString ()Ljava/lang/String;
// 144: iconst_1
// 145: invokestatic 683 android/widget/Toast:makeText (Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
// 148: invokevirtual 686 android/widget/Toast:show ()V
// 151: iconst_0
// 152: istore 12
// 154: iload 12
// 156: aload 11
// 158: invokeinterface 673 1 0
// 163: if_icmplt +75 -> 238
// 166: aload 10
// 168: invokevirtual 689 android/database/sqlite/SQLiteDatabase:close ()V
// 171: aload_1
// 172: invokevirtual 690 c/p:close ()V
// 175: new 653 c/p
// 178: dup
// 179: getstatic 61 example/com/PackagePMB:a Lexample/com/PackagePMB;
// 182: invokespecial 654 c/p:<init> (Landroid/content/Context;)V
// 185: astore 5
// 187: aload 5
// 189: invokevirtual 656 c/p:b ()V
// 192: aload 5
// 194: invokevirtual 693 c/p:getWritableDatabase ()Landroid/database/sqlite/SQLiteDatabase;
// 197: astore 6
// 199: aload 6
// 201: ldc_w 695
// 204: ldc_w 697
// 207: iconst_0
// 208: anewarray 128 java/lang/String
// 211: invokevirtual 701 android/database/sqlite/SQLiteDatabase:delete (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
// 214: pop
// 215: aload 6
// 217: invokevirtual 689 android/database/sqlite/SQLiteDatabase:close ()V
// 220: aload 5
// 222: invokevirtual 690 c/p:close ()V
// 225: return
// 226: astore_2
// 227: new 703 java/lang/Error
// 230: dup
// 231: ldc_w 705
// 234: invokespecial 706 java/lang/Error:<init> (Ljava/lang/String;)V
// 237: athrow
// 238: aload 11
// 240: iload 12
// 242: invokeinterface 709 2 0
// 247: pop
// 248: aload_0
// 249: aload 11
// 251: aload 11
// 253: ldc_w 711
// 256: invokeinterface 714 2 0
// 261: invokeinterface 717 2 0
// 266: aload 11
// 268: aload 11
// 270: ldc_w 719
// 273: invokeinterface 714 2 0
// 278: invokeinterface 717 2 0
// 283: iconst_0
// 284: invokestatic 616 java/lang/Boolean:valueOf (Z)Ljava/lang/Boolean;
// 287: invokespecial 618 example/com/PackagePMB:a (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V
// 290: iinc 12 1
// 293: goto -139 -> 154
// 296: astore 4
// 298: aload_1
// 299: invokevirtual 690 c/p:close ()V
// 302: goto -127 -> 175
// 305: astore_3
// 306: aload_1
// 307: invokevirtual 690 c/p:close ()V
// 310: aload_3
// 311: athrow
// 312: astore 8
// 314: aload 6
// 316: invokevirtual 689 android/database/sqlite/SQLiteDatabase:close ()V
// 319: aload 5
// 321: invokevirtual 690 c/p:close ()V
// 324: return
// 325: astore 7
// 327: aload 6
// 329: invokevirtual 689 android/database/sqlite/SQLiteDatabase:close ()V
// 332: aload 5
// 334: invokevirtual 690 c/p:close ()V
// 337: aload 7
// 339: athrow
// Local variable table:
// start length slot name signature
// 0 340 0 this ParsianPMB
// 75 232 1 localp1 c.p
// 226 1 2 localIOException IOException
// 305 6 3 localObject1 Object
// 296 1 4 localSQLException1 android.database.SQLException
// 185 148 5 localp2 c.p
// 197 131 6 localSQLiteDatabase1 android.database.sqlite.SQLiteDatabase
// 325 13 7 localObject2 Object
// 312 1 8 localSQLException2 android.database.SQLException
// 88 79 10 localSQLiteDatabase2 android.database.sqlite.SQLiteDatabase
// 102 167 11 localCursor android.database.Cursor
// 152 139 12 i1 int
// Exception table:
// from to target type
// 76 80 226 java/io/IOException
// 80 151 296 android/database/SQLException
// 154 166 296 android/database/SQLException
// 166 171 296 android/database/SQLException
// 238 290 296 android/database/SQLException
// 80 151 305 finally
// 154 166 305 finally
// 166 171 305 finally
// 238 290 305 finally
// 199 215 312 android/database/SQLException
// 199 215 325 finally
}
/*错误*/
公开最终作废b()
{
//字节码:
//0:aload_0
//1:getfield 68示例/com/PackagePMB:y Lc/y;
//4:ifnonnull+15->19
//7:aload_0
//8:新640立方英尺/年
//11:dup
//12:aload_0
//第13条:特别是第643条,是:(Lc/w;)V
//16:putfield 68示例/com/PackagePMB:y Lc/y;
//19:getstatic 645 c/g:m B
//22:ifeq+18->40
//25:aload_0
//26:getfield174example/com/PackagePMB:pljava/util/Stack;
//29:invokeVirtual648java/util/Stack:size()I
//32:ifle+8->40
//35:aload_0
//36:invokevirtual457示例/com/PackagePMB:j()V
//39:返回
//40:aload_0
//41:getfield174example/com/PackagePMB:pljava/util/Stack;
//44:invokeVirtual651java/util/Stack:removeAllements()V
//47:aload_0
//48:getfield 176示例/com/PackagePMB:u Lc/ag;
//51:aload_0
//52:getfield558示例/com/PackagePMB:f Lc/c;
//55:invokevirtual 190 c/ag:a(Landroid/view/view;)V
//58:aload_0
//59:getfield 176示例/com/PackagePMB:u Lc/ag;
//62:invokevirtual 192 c/ag:b()V
//65:新653 c/p
//68:dup
//69:getstatic 61示例/com/PackagePMB:a Lexample/com/PackagePMB;
//72:invokespecial 654 c/p:(Landroid/content/Context;)V
//75:astore_1
//76:aload_1
//77:invokevirtual 655 c/p:a()V
//80:aload_1
//81:invokevirtual 656 c/p:b()V
//84:aload_1
//85:invokevirtual660 c/p:getReadableDatabase()Landroid/database/sqlite/SQLiteDatabase;
//88:astore 10
//90:aload 10
//92:ldc_w 662
//95:iconst_0
//96:anewarray 128 java/lang/String
//99:invokevirtual668 android/database/sqlite/SQLiteDatabase:rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
//102:astore 11
//104:aload 11
//106:invokeinterface 673 1 0
//111:ifle+55->166
//114:aload_0
//115:新的282 java/lang/StringBuilder
//118:dup
//119:ldc_w 675
//122:invokespecial 285 java/lang/StringBuilder:(Ljava/lang/String;)V
//125:aload 11
//127:invokeinterface 673 1 0
//132:invokevirtual 289 java/lang/StringBuilder:append(I)Ljava/lang/StringBuilder;
//135:ldc_w 677
//138:invokevirtual294java/lang/StringBuilder:append(Ljava/lang/String;)Ljava/lang/StringBuilder;
//141:invokevirtual297java/lang/StringBuilder:toString()Ljava/lang/String;
//144:iconst_1
//145:invokestatic683android/widget/Toast:makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
//148:invokevirtual686 android/widget/Toast:show()V
//151:iconst_0
//152:istore 12
//154:iload 12
//156:aload 11
//158:invokeinterface 673 1 0
//163:如果icmplt+75->238
//166:aload 10
//168:invokevirtual 689 android/database/sqlite/SQLiteDatabase:close()V
//171:aload_1
//172:调用虚拟690 c/p:关闭()V
//175:新653 c/p
//178:dup
//179:getstatic 61示例/com/PackagePMB:a Lexample/com/PackagePMB;
//182:invokespecial 654 c/p:(Landroid/content/Context;)V
//185:astore 5
//187:aload 5
//189:调用虚拟656 c/p:b()V
//192:aload 5
//194:invokevirtual 693 c/p:getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
//197:astore 6
//199:aload 6
//201:ldc_w 695
//204:ldc_w 697
//207:iconst_0
//208:anewarray 128 java/lang/String
//211:invokevirtual 701 android/database/sqlite/SQLiteDatabase:delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
//214:流行音乐
//215:aload 6
//217:invokevirtual 689 android/database/sqlite/SQLiteDatabase:close()V
//220:aload 5
//222:invokevirtual 690 c/p:close()V
//225:返回
//226:astore_2
//227:新703 java/lang/Error
//230:dup
//231:ldc_w 705
//234:invokespecial 706java/lang/Error:(Ljava/lang/String;)V
//237:athrow
//238:aload 11
//240:iload 12
//242:invokeinterface 709 2 0
//247:流行音乐
//248:aload_0
//249:aload 11
//251:aload 11
//253:ldc_w 711
//256:invokeinterface 714 2 0
//261:调用接口717 2 0
//266:aload 11
//268:aload 11
//270:ldc_w 719
//273:invokeinterface 714 2 0
//278:invokeinterface 717 2 0
//283:iconst_0
//284:invokestatic616java/lang/Boolean:valueOf(Z)Ljava/lang/Boolean;
//287:invokespecial 618示例/com/PackagePMB:a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V
//290:iinc 12 1
//293:转到-139->154
//296:astore 4
//298:aload_1
//299:invokevirtual 690 c/p:close()V
//302:转到-127->175
//305:astore_3
//306:aload_1
//307:invokevirtual 690 c/p:close()V
//310:aload_3
//311:athrow
//312:astore 8
//314:aload 6
//316:invokevirtual 689 android/database/sqlite/SQLiteDatabase:close()V
//319:aload 5
//321:调用虚拟690 c/p:关闭()V
//324:返回
//325:astore 7
//327:aload 6
//329:invokeVirtual689 android/database/sqlite/SQLiteDatabase:close()V
//332:aload 5
//334:调用