资讯专栏INFORMATION COLUMN

Android常用代码备份

instein / 1664人阅读

摘要:获取当前界面的名称关于在工程中创建文件,编译后,会生成一个文件,这个文件里生成抽象类继承实现中声明的方法。

获取当前界面的Activity名称

adb logcat | grep ActivityManager

关于aidl

在Android工程中, 创建xxxx.aidl文件,编译后,会生成一个xxxx.java文件,这个文件里生成Stub抽象类继承android.os.Binder、实现aidl中声明的方法。然后工程里创建一个service类

Android Activity生命周期
进入到一个Activity
onCreate -> onStart -> onResume

App进入后台
onPause -> onStop

关闭Activity
onPause -> onStop -> onDestroy

App页面跳转
onPause -> onStop

重回Activity
onRestart -> onStart -> onResume

总结就是: 界面出现 -> onStart, 界面消失 -> onStop
         界面创建 -> onCreate, 界面摧毁 -> onDestroy
Android App启动时类的加载顺序

在工程的AndroidManifest.xmlapplication中定义android:name属性,到具体的类,App启动时就首先加载这个类。然后再加载在AndroidManifest.xml中定义为android.intent.category.LAUNCHER的类

BroadcastReceiver 注册有两种方式
1. 静态注册

需要过滤的filtAction写在AndroidManifest.xml里
比如:



    
        
    

2. 动态注册
MyBroadcastReceiver myReceiver = new MyBroadcastReceiver();
IntentFilter fileter = new IntentFilter();
fileter.addAction("com.app.broadcast");
MainActivity.this.registerReceiver(myReceiver, fileter);
3. 发送通知:
Intent intent = new Intent("");
this.sendBroadcast(intent);
截图
adb shell screencap -p | perl -pe "s/x0Dx0A/x0A/g" > screen.png
关于Handler

应用启动时,Android FrameWork创建一个Looper对象,处理MessageQueue里的Message
创建一个Hander后,MessageQueue对象会持有这个Handler的引用
Looper处理Handler时,就触发Handler的handleMessage(Message)方法

内部匿名类和内部非静态类会有一个对外部类的隐式引用

如果Handler长时间不执行,当前类的内存不会被释放

事例代码
public class SampleActivity extends Activity {

  /**
   * Instances of static inner classes do not hold an implicit
   * reference to their outer class.
   */
  private static class MyHandler extends Handler {
    private final WeakReference mActivity;

    public MyHandler(SampleActivity activity) {
      mActivity = new WeakReference(activity);
    }

    @Override
    public void handleMessage(Message msg) {
      SampleActivity activity = mActivity.get();
      if (activity != null) {
        // ...
      }
    }
  }

  private final MyHandler mHandler = new MyHandler(this);

  /**
   * Instances of anonymous classes do not hold an implicit
   * reference to their outer class when they are "static".
   */
  private static final Runnable sRunnable = new Runnable() {
      @Override
      public void run() { /* ... */ }
  };

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Post a message and delay its execution for 10 minutes.
    mHandler.postDelayed(sRunnable, 1000 * 60 * 10);
    
    // Go back to the previous Activity.
    finish();
  }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/12485.html

相关文章

  • Reading:一款不错的Material Desgin风格的Kotlin版本的开源APP

    摘要:在此感谢的以及其它开源项目的贡献。具体可见包网络层使用进行网络请求,封装公共的创建拦截器等工厂模式创建不同的网络对象。 Reading https://github.com/Hankkin/Reading 简介 很久不见,重新拾起博客吧,今天分享一个开源APP-Reading,项目的初衷是因为自己平时翻文章,但是公众号又经常忘记看,自己索性搞一个APP吧,顺便练一下Kotlin。借助着...

    Brenner 评论0 收藏0
  • android常用名词收集

    摘要:以后你就能再次用这个备份来将手机恢复到这个状态。这个词语来自的用户,享有最高权限。通常不要去手机,如果操作不当,对手机系统造成损坏,可能会开不了机等。而一般是用来初始安装的首选途径。此外模式下还能解锁。 持续学习,持续更新...... AOSP AOSP stands for Android Open Source Project. Stock Stock Android is wh...

    bingchen 评论0 收藏0
  • Android项目安全注意事项和解决方案

    摘要:还有就是项目发布后项目中一些数据安全,等方面,都值得我们考虑,思索。官方文档安全说明及其以上系统提供了为应用程序数据的备份和恢复功能,此功能的开关决定于该应用程序中文件中的属性值,其属性值默认是。解决方案自己进行数据加密。 在个人和公司开发的项目发布后,作为软件工程师最担心的就是代码安全(虽说现今而言,技术已没有什么秘密,聪明人很多,你的功能可能别人稍加研究就能不看代码也能实现(黑科技...

    laznrbfe 评论0 收藏0
  • Android项目安全注意事项和解决方案

    摘要:还有就是项目发布后项目中一些数据安全,等方面,都值得我们考虑,思索。官方文档安全说明及其以上系统提供了为应用程序数据的备份和恢复功能,此功能的开关决定于该应用程序中文件中的属性值,其属性值默认是。解决方案自己进行数据加密。 在个人和公司开发的项目发布后,作为软件工程师最担心的就是代码安全(虽说现今而言,技术已没有什么秘密,聪明人很多,你的功能可能别人稍加研究就能不看代码也能实现(黑科技...

    WalkerXu 评论0 收藏0
  • Android 開發之進階 - 收藏集 - 掘金

    摘要:的事件分发的事件基础分析的事件分析例子说明我们给一个设置浅析事件传递掘金中的事件传递主要涉及三个方法和。 快来看看 Google 出品的 Protocol Buffer,别只会用 Json 和 XML 了 - Android - 掘金前言 习惯用 Json、XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google...

    王岩威 评论0 收藏0

发表评论

0条评论

instein

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<