xml
逆向分析最先就是清单文件AndroidManifest
attachBaseContext是android最早运行的函数
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.bluelesson.no1app"><!--标签的结束--><!--<标签1 属性1="你好" 属性2="我好" 属性3="大家好">--><!--内容--><!--</标签1>--><!--<标签1 属性1="你好" 属性2="我好" 属性3="大家好" />--><!--android清单文件中最重要的属性--><!--package="com.bluelesson.no1app" 包名,在android系统中包名是不允许重复的--><!--@代表引用资源 @后边是资源的类型,@资源类型/资源名称 --><!--application的属性 主要是对整个app进行设置--><!--application的内部 就是整个app中主要的组件信息--><applicationandroid:name=".MyApp"android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name1"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><!--activity 界面组件--><!--android:name 指定界面组件对应的类名 .省略了包名--><!--intent-filter 指定的是这个类的一些属性 action.MAIN代表入口,category.LAUNCHER 启动器--><!--如果activity中有action.MAIN category.LAUNCHER,当前类就是入口类 --><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>
java目录

MainActivity
// MainActivity的祖先类是 Context// 某些方法的参数是Context 我们就可以传入Activity类型的对象或者是thispublic class MainActivity extends AppCompatActivity {// 系统会自动调用onCreate@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 设置当前类所需要的资源ID// 资源ID是android编译器自动生成的,与资源文件或者对应的资源一一对应setContentView(R.layout.activity_main);// 访问资源中的一个字符串String string = getString(R.string.app_name);// 使用代码修改布局的属性// 1. 获取界面对象,使用findViewById方法LinearLayout linearLayout = findViewById(R.id.linear_layout1);// 2. 修改属性linearLayout.setGravity(Gravity.RIGHT);// linearLayout.setOrientation();}}
res

gradle


debug

release



上面选错了
依赖

