内容提供器(Java)
运行时权限危险权限表格 运行时申请权限(以打电话为例)1.先借助ContextCompat.checkSelfPermission()方法判断用户是否进行了授权。 checkSelfPermission()接收两个参数,第一个是Context,第二个是具体的权限名 2.使用方法的返回值和PackageManager.PERMISSION_GRANTED作比较,不等表示未授权,相等表示已授权 3.把打电话的逻辑封装在**call()方法当中如果授权直接执行该方法,如果未授权,利用ActivityCompat.requestPermissions()**方法向用户申请授权,**requestPermissions()**接收三个参数,第一个是Activity实例,第二个是String数组,把权限名放入其中,第三个是请求码,只要是唯一值就行。 4.调用requestPermissions()方法后最终会回调到onRequestPermissionResult()方法,而授权结果会封装在grantResults参数中,判断最后的授权结果 完整的实例: 123456789101112131...
Git
创建代码仓库首先配置身份,利用: git config --global user.name " " git config --global user.email " " 可以利用git config --list对配置信息进行查看 然后进入到想要创建仓库的相应项目文件中利用 cd 然后在该目录中输入git init 项目创建完成后会在目录中生成一个隐藏的**.git文件夹,这个文件夹用来记录本地所有的Git操作,可以通过ls -al**命令来查看 如果想删除该仓库,只需删除这个文件夹即可 提交本地代码可以使用add和commit提交 add是先将想要提交的代码添加进来,commit则是真正的去执行提交操作 添加单个文件:git add+文件名 添加目录:git add+目录名 添加所有文件:git add . 提交:git commit -m "First commit."一定要有-m加上提交的描述信息。 忽略文件如果不想把app文件下的内容添加到版本控制中,那么可以修改app/.gitigno...
try,catch和finally
在 Java 中,try、catch 和 finally 是异常处理机制的核心部分。它们用于捕获、处理异常,并确保无论是否发生异常,某些代码都会被执行。下面是对它们的详细解释: try块try 块用于包含可能会抛出异常的代码。如果 try 块中的代码抛出了异常,程序会立即跳转到匹配的 catch 块进行处理。 123try{ //可能抛出异常的代码} try 中的代码是你认为可能会发生异常的部分。例如,读取文件、连接数据库等操作可能会抛出异常。 catch块catch 块用于捕获和处理异常。如果 try 块中的代码抛出了异常,程序会跳转到与异常类型匹配的 catch 块来处理这个异常。 1234567try { // 可能抛出异常的代码} catch (ExceptionType1 e1) { // 处理异常类型 1} catch (ExceptionType2 e2) { // 处理异常类型 2} 你可以有多个 catch 块来处理不同类型的异常。catch 块...
数据存储(Java)
文件存储数据存储1.新建save方法,运用openFileOutput接收(“文件名”,保存模式(强制覆盖:MODE_PRIVATE,增添追加:MODE_APPEND)),openFileOutput方法返回的是FileOutputStream对象,通过BufferedWriter将其写入到文件中。 2.重写onDestroy()方法,确保销毁前一定会调用save方法。 1234567891011121314151617181920212223242526272829303132333435363738394041public class MainActivity extends AppCompatActivity {private EditText edit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity...
广播机制(Java)
广播机制简介标准广播 有序广播 接收系统广播动态注册监听网络变化简易版首先先创建一个类,按例子来是建立一个内部类,并在里面重写父类的onReceive()方法。 然后在onCreate()方法中首先创建一个IntentFilter的实例,并给他添加一个值为”android.net.conn.CONNECTIVITY_CHANGE”的action,为什么添加这个值,就是因为当网络状态发生变化时,系统发出的正是一条值为”android.net.conn.CONNECTIVITY_CHANGE”的广播,也就是说想监听什么广播就要添加相应的action。接下来创建内部类实例然后调用 registerReceiver()方法进行注册,然后把NetworkChangeReceiver实例和IntentFilter实例都传进去。 最后记的也要取消注册,在onDestroy()中调用 unregisterReceiver实现。 123456789101112131415161718192021222324public class MainActivity extends AppCompatAc...
碎片(Java)
碎片是什么碎片是一种可以嵌入在活动当中的UI片段,它能让程序更加合理充分地利用大屏幕的空间,因而在平板上应用广泛。 碎片的使用方式碎片的简单用法新建一个左侧碎片布局left_fragment.xml: 1234567891011<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_...
UI开发(Java)
常用控件TextView1.android:id定义唯一标识符2.android:layout_width指定宽度有match_parent和wrap_content两个选项,第一个表示当前控件大小和父布局大小一样,第二个表示当前控件大小刚好能包住里面的内容3.android:layout_height指定高度,选项和上相同4.android:text指定文本显示的内容5.android:gravity指定文字对齐方式可选值有top,bottom,left,right,center等,可以用“|”来指定多个值6.android:textSize指定文字大小,用sp做单位7.android:textColor指定文字颜色 123456789<TextView android:id="@+id/text_view" android:layout_width="match_parent" android:layout_height="wrap_content" androi...
活动(Java)
手动创建一个活动的全过程1.创建一个活动2.创建和加载布局(根元素一般选用LinearLayout的): 1234567891011<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/button_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button ...
Android认识以及入门
系统架构1.Linux内核层:提供底层驱动2.系统运行库层:提供主要的特性支持(通过C/C++库),同样这一层也有Android运行时库,提供了一些核心库,能允许开发者使用Java来编写应用。3.应用框架层:提供了各种API4.应用层:安装到手机上的应用程序都属于这一层 Android应用开发特色1.四大组件:活动,服务,广播接收器,内容提供器。2.丰富的系统控件3.SQLite数据库:让存储数据和读取数据变得更为方便4.强大的多媒体5.地理位置定位 项目中各个文件的作用1.gradle:里面含有gradle wrapper配置文件,需要打开的话必须手动按照“导航栏FileSettingsBulid,Execution,DeploymentGradle”这个步骤进行2..gitignore:将指定的目录或文件排除在版本控制之外。3.gradle.properties:这个文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。4.gradlew和gradlew.bat:用来在命令行界面中执行gradle命令的,其中gradle是...













