修改包名实现分身
实现apk程序分身功能只需要修改如下两个属性:
1、在androidmainfest.xml中的第一行找到package属性,修改包名。
2、在androidmainfest.xml中的标签中修改android:authorities属性即可,多个的话,都需要进行修改。
修改资源去广告的方法(apk的入口广告和弹窗广告):
1、在androidmainfest.xml中删除除了INTERNET之外的所有与网络有关的权限(去除apk中的联网弹窗广告),因为INTERNET权限如果被删除后可能导致apk崩溃,有些功能无法使用比如弹窗更新等。举例:保留<uses-permission android:name="android.permission.INTERNET"/>
删除:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
2、Activity标签中找到LAUNCHER,即程序入口的页面,将其删除,使用adb shell dumpsys activity top(可以捕获当前模拟器最顶层的活动界面)
的命令,定位当前activity(即找到 属性android:name="org.cocos2dx.lua.AppActivity的activity标签),将其属性按照下图修改为LAUNCHER即可。
实例如下:
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/app_name" android:name="com.mosads.adslib.Splash.MosSplashActivity" android:screenOrientation="landscape" android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
知识点:
Activity是一个应用组件,用户可与其提供的屏幕进行交互,我们在应用程序中能看到的内容,绝大多数都是Activity组件提供的
。- adb即安卓调试桥(android debug briage)其可以使用adb来使用电脑端与模拟器或真机进行交互,其常用的使用命令有:
1、adb devices:显示连接的真机或者模拟器设备有哪些
2、adb shell:能够获取设备或者模拟器的交互环境 - 使用adb命令获取的当前activity界面如下图:
java基础
- 开发java程序的步骤:编写程序,编译程序, 运行程序
第一个java程序HelloWorld.java:
// 定义一个类HelloWorld,注意这个类名一定要和文件名完全相同,不然编译的时候就会出错
public class HelloWorld{
// 这个是程序的启动原点, 函数名main是固定的,void代表函数没有返回值
public static void main(String[] args){
// 向屏幕上打印hello world!!!
System.out.println("hello world!!!");
}
}
注意:javac HelloWorld.java进行编译程序,java HelloWorld进行运行程序,实际上运行的是HelloWorld.class文件
java中的标识符及命名规范:
- 关键字:
特点:
1、关键字都是小写
2、常用的代码编辑器对关键字都有高亮显示比如:public、static、class等
常量:在程序运行期间,其值固定不变的量
java中常量的分类:
- 字符串常量:凡是用双引号引起来的部分,叫做字符串常量,如:“abc”、“123”
- 整数常量:直接写上的数字,没有小数点, 例如:100、200
- 浮点数常量:直接写上的数字,有小数点,例如:2.5、-3.14
- 字符常量:凡是用单引号引起来的单个字符,就叫做字符常量, 例如:‘A’、‘b’、‘中’,注意,这个单引号中必须只有一个字符,不能是空白
。
- 布尔常量:只有两种取值:true、false
- 空常量:null,代表没有任何数据。注意,不能直接打印空常量
即System.out.println(null)
这种写法错误
数据类型的分类:
1、基本数据类型:
1、整数型:byte、short、int(java中默认的整数类型)、long
2、浮点型:float、double(java中默认的浮点数类型)
3、字符型:char
4、布尔型:boolean
它们的区别如图所示:
2、引用数据类型:字符串
、数组、类、接口、Lambda
注意事项:
1、字符串不是基本类型,而是引用类型
2、浮点型可能只是一个近似值,并非精确的值
3、数据范围与占用字节数不一定相关,例如float数据范围比long更加广泛,但是float的占用的内存为4字节
4、浮点数当中默认类型为double。如果一定要使用float,需要加上一个后缀F。如果是整数,默认类型为int,如果一定要使用long类型,需要加上一个后缀L,推荐使用大写字母后缀。
变量:程序运行期间,内容可以发生改变的量
创建一个变量并且使用的格式:
- 数据类型 变量名称 = 值; // 创建一个变量,数据类型代表着这个变量存储的是什么类型的数据。这种创建变量的方法可以拆开。
注意:
1、创建多个变量,那么变量之间的名称不可以重复,如果重复,编译会报错
2、对于float和long类型来说,字母后缀F和L不要丢掉
3、如果使用byte或者short类型的变量,那么右侧的数据值不能超过左侧类型的范围
4、没有进行赋值的变量,不能直接使用,一定要复制之后,才能使用,否则编译报错
5、变量使用不能超过作用域的范围:从定义变量的一行开始,一直到直接所属的大括号结束为止,而且需要先定义,后使用
6、可以通过一个语句,创建多个变量,但是一般不推荐这样写。比如:
// 第一种写法
int a, b, c;
a = 10;
b = 20;
c = 30;
// 第二种写法
int x = 100, y=200, z=300;
java中的类型转换:
1、自动类型转换:把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量,这种转换是自动的,直接诶书写即可。
public class Student{
public static void main(String[] args){
double a = 10;
System.out.println(a); // 输出结果是10.0
};
}
2、强制类型转换:把一个表示数据范围大的数值或变量赋值个另一个表示范围小的数值或变量。
强制类型转换格式:目标数据类型 变量名 = (目标数据类型) 数值或变量
public class Student{
public static void main(String[] args){
double a = 5.5;
int b = (int) a;
System.out.println(b);}; // 输出结果为5
}
java中基本数据类型表示范围从小到大的顺序如下图:
注意:
注意:boolean类型不能与其他类型进行相互转换
运算符:进行特定操作的符号
表达式:用运算符连接起来的式子就是表达式
public class Student{
public static void main(String[] args){
int a=1, b=2;
System.out.println(a/b); // 输入结果是0并非是0.5, 要想得到浮点数,那么就一定要有浮点数参与运算
};
}
public class Student{
public static void main(String[] args){
int a = 10;
double b = 3.0;
System.out.println(a/b)}; // 输出结果为3.3333333333333335
}
注意:System.out.println(1+99+“年黑马”) 输出结果是”100年黑马“, 上述错误。