(1)android获取网络时间:

    import java.io.IOException;    import java.net.URL;    import java.net.URLConnection;    import java.util.Date;        @Override    protected void onCreate(final Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Log.v(TAG, "onCreate:");        setContentView(com.example.fcqing.myapplication.R.layout.activity_main);        //*****        new Thread(new Runnable() {            @Override            public void run() {                try {                    URL mURL = new URL("http://www.baidu.com");                    URLConnection mConnection = mURL.openConnection();                    mConnection.connect();                    long mDate = mConnection.getDate();                    Date mDate1 = new Date(mDate);                    yearNet = mDate1.getYear() + 1900; //int类型                    monthNet = mDate1.getMonth() + 1;  //int类型                }catch (IOException mE) {                    mE.printStackTrace();                }            }        }).start();}

注:安卓设备预设时间是以1900年为初始值的,所以得到的年份year值为从1900年后多少年,如果year=119,表示今年是1900+119=2019年;月份month值为0~11,需要+1;day为1 - 31。

(2)Android获取文件路径方法

Environment.getDataDirectory() = /dataEnvironment.getDownloadCacheDirectory()= /cacheEnvironment.getExternalStorageDirectory() = /mnt/sdcardEnvironment.getExternalStoragePublicDirectory(“test”)= /mnt/sdcard/testEnvironment.getRootDirectory() = /systemgetPackageCodePath() = /data/app/com.my.app-1.apkgetPackageResourcePath() = /data/app/com.my.app-1.apkgetCacheDir() = /data/data/com.my.app/cachegetDatabasePath(“test”)= /data/data/com.my.app/databases/testgetDir(“test”, Context.MODE_PRIVATE)= /data/data/com.my.app/app_testgetExternalCacheDir()= /mnt/sdcard/Android/data/com.my.app/cachegetExternalFilesDir(“test”)= /mnt/sdcard/Android/data/com.my.app/files/testgetExternalFilesDir(null) = /mnt/sdcard/Android/data/com.my.app/filesgetFilesDir()= /data/data/com.my.app/files

实例方法:

//获取SD路径public void getSDPath(){     File sdDir = null;     File sdDir1 = null;    File sdDir2 = null;    boolean sdCardExist = Environment.getExternalStorageState()         .equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在     if (sdCardExist) {         sdDir = Environment.getExternalStorageDirectory();//获取跟目录         sdDir1 = Environment.getDataDirectory();        sdDir2 =Environment.getRootDirectory();    }     System.out.println("getExternalStorageDirectory(): "+sdDir.toString());     System.out.println("getDataDirectory(): "+sdDir1.toString());     System.out.println("getRootDirectory(): "+sdDir2.toString()); }   //判断一个路径下的文件(文件夹)是否存在,如果不存在则新建public class IsExist {    public static void main(String[] args) {        isExist(" /data/app/1.jpg");    }     /**    * @param path 文件夹路径    */    public static void isExist(String path) {        File file = new File(path);        //判断文件夹是否存在,如果不存在则创建文件夹        if (!file.exists()) {            file.mkdir();        }    }} //在SD卡上创建一个文件夹public class makeFile extends Activity {     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         File sd=Environment.getExternalStorageDirectory();         String path=sd.getPath()+"/notes";         File file=new File(path);         if(!file.exists())             file.mkdir();  }

(3)android studio 修改包名:

将左侧目录切换成“android”,然后在“app--java--当前包名 ”位置,按快捷键 shift + F6 ,选择Rename package;

填好包名后点击Refactor;然后选择左下方的Do Refactor,系统会用一段时间自动修改包名;最后需要我们手动修改app中build.gradle 的applicationId项,改成新修改的包名即可。

(4)android studio 发布release版本

https://blog.csdn.net/to_perfect/article/details/69048419(亲测,搬运过来)

一、前提
发布release 版本,首先需要保证当前的app没有bug、可以正式发布。
二.、准备jks
.jks即密钥库,是一种包含一个或多个私钥的二进制文件,只要记住,他就相当于人的指纹一样重要就行了。切记!必须在应用的整个生命周期内使用相同的证书,以便用户能够以应用更新的形式安装新版本。我们来看看如何在as中创建密钥库。
首先,在菜单栏中,点击 Build > Generate Signed APK。出现如下对话框

android:获取网络时间、文件路径,修改包名,发布release版本_第1张图片
点击create new....如果有了就直接choose 好了。
点击后会让你创建一个密钥库,如下图:

android:获取网络时间、文件路径,修改包名,发布release版本_第2张图片
Key store path:选择创建密钥库的位置 + 密钥库名字+jks。

Password:为您的密钥库创建并确认一个安全的密码。

Alias:为您的密钥输入一个标识名。

Password:为您的密钥创建并确认一个安全的密码。此密码应当与您为密钥库选择的密码不同

Validity (years):以年为单位设置密钥的有效时长。密钥的有效期应至少为 25 年,以便您可以在应用的整个生命期内使用相同的密钥签署应用更新。默认为25

Certificate:为证书输入一些关于您自己的信息。此信息不会显示在应用中,但会作为 APK 的一部分包含在您的证书中。

一定要把两个密码记住,为了安全起见,两个密码最好不一样。填完,击ok即可,这个时候会在相应的文件下生成demo.jks,紧接着会回到下面的界面,点击next-->finish

android:获取网络时间、文件路径,修改包名,发布release版本_第3张图片
三、配置构建流程以自动签署您的 APK
1.在 Project 窗口中,右键点击您的应用并点击 Open Module Settings。
2.在 Project Structure 窗口左面板中的 Modules 下,点击您想要签署的模块。
3.点击 Signing 标签,然后点击 ‘+’ 。
4.选择您的密钥库文件,为此签署配置输入一个名称(随意起一个),然后输入所需的信息。

android:获取网络时间、文件路径,修改包名,发布release版本_第4张图片

如图,找到上面创建的密钥库,并输入密钥库的密码,以及密钥密码

android:获取网络时间、文件路径,修改包名,发布release版本_第5张图片
然后,点击 Build Types 标签,点击 release 构建,在 Signing Config 下,选择您刚创建的签署配置。点击OK

android:获取网络时间、文件路径,修改包名,发布release版本_第6张图片
现在,在您每一次使用 Android Studio 构建发布构建时,IDE 都会使用您指定的签署配置自动签署 APK。
四、发布release版本
顺利走完上面的步骤,那么离发布release版本就差一键了,首先,修改发布版本,在as的左下角,修改build variant为release,接着,run即可,这个时候在项目下面的app\build\outputs\apk下就可以看到release版本的apk了,good lucky~~

android:获取网络时间、文件路径,修改包名,发布release版本_第7张图片

五、签署注意事项
在应用的预期生命周期内,您应使用相同证书签署所有 APK。这么做的原因有多个:
应用升级:
当系统安装应用的更新时,它会比较新版本和现有版本中的证书。如果证书匹配,则系统允许更新。如果您使用不同的证书签署新版本,则必须为应用分配另一个软件包名称 - 在此情况下,用户将新版本作为全新应用安装。
应用模块化:
Android 允许通过相同证书签署的多个 APK 在同一个进程中运行(如果应用请求这样),以便系统将它们视为单个应用。通过此方式,您可以在模块中部署您的应用,且用户可以独立更新每个模块。
通过权限共享代码/数据:
Android 提供基于签名的权限执行,以便应用可以将功能展示给使用指定证书签署的另一应用。通过使用同一个证书签署多个 APK 并使用基于签名的权限检查功能,您的应用可采用安全的方式共享代码和数据。
 

更多相关文章

  1. Android API等级、Android版本、发布日期 《一览表》
  2. android获取sd卡路径方法:
  3. Android各版本对应的SDK和JDK版本
  4. Android 揭露效果兼容低版本
  5. Android调用系统自带的文件管理器进行文件选择并获得路径
  6. android aosp 源码版本
  7. Android对应的版本号
  8. android API8以上版本使用GridLayout
  9. Android版本名和API Level对应关系

随机推荐

  1. Android设计模式系列(8)--SDK源码之工厂
  2. 关于Android 横竖屏切换(避免Activity在转
  3. Android实现数据存储技术
  4. 【流媒體】Android 实时视频采集/编码/传
  5. Android 之 退出的2种方式
  6. Android中的Surface和SurfaceView
  7. AsyncTask的使用方法(异步任务的处理)
  8. Android的 getSystemService
  9. Android(安卓)Camera HAL3 - MultiCamera
  10. js将一个数组传给android