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中主要的组件信息-->
<application
android: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类型的对象或者是this
public class MainActivity extends AppCompatActivity {
// 系统会自动调用onCreate
@Override
protected 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
上面选错了