CM9&CM10&各官方android4.0系统4.1系统添加农历教程

本文介绍如何通过反编译和修改Android系统的framework.jar和android.policy.jar文件来实现自定义锁屏日期显示格式的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      不会反编译的不建议操作,我也没办法,反编译是基础,这个不会谁也帮不了你。

       废话少说,我喜欢直接……

     声明 :此教程原理及代码来源与网上,参考了好多帖子才尝试出来的。十分拜谢。暂时4.0以上系统基本通用,我说的的是基本通用,没说一定通用。后果自负哦
    android就是需要折腾,开不了机神马的都是正常而且必经之路。胆小你就洗洗睡吧……

    有图才有真相:这是谁定的破规矩:
     


      系统deodex与否不重要,重要的是你得知道:如果未deodex的在替换的时候需要注意什么。

      提取framework.jar(和framework.odex)、android.policy.jar(和android.policy.odex)如果已经deodex的直接下一步就行,未deodex的先将odex文件反编译成dex。

      好多人可能会不成功,推荐使用xultimate工具,如果这一步你被挡住了,那……那……你后面的直接可以忽略了……洗洗睡吧

      反编译framework和android.policy
      搜索android.policy\smail\com\android\internal\policy\impl\KeyguardStatusViewManager.smali
      找到
  1. .method refreshDate()
  2. ……
  3. ……
  4. ……
  5. ……
  6. ……
  7. .end method
复制代码
方法(千万不要tell我你找不到),整个方法替换成如下代码:
  1. .method refreshDate()V
  2. .registers 6

  3. .prologue
  4. .line 889
  5. iget-object v1, p0, Lcom/android/internal/policy/impl/KeyguardStatusViewManager;->mDateView:Landroid/widget/TextView;

  6. if-eqz v1, :cond_42

  7. .line 890
  8. new-instance v0, Ljava/util/Date;

  9. invoke-direct {v0}, Ljava/util/Date;-><init>()V

  10. .line 891
  11. .local v0, now:Ljava/util/Date;
  12. invoke-virtual {v0}, Ljava/util/Date;->getYear()I

  13. move-result v1

  14. add-int/lit16 v1, v1, 0x76c

  15. invoke-virtual {v0}, Ljava/util/Date;->getMonth()I

  16. move-result v2

  17. invoke-virtual {v0}, Ljava/util/Date;->getDate()I

  18. move-result v3

  19. invoke-static {v1, v2, v3}, Landroid/util/Lunar;->setLunar(III)V

  20. .line 892
  21. iget-object v1, p0, Lcom/android/internal/policy/impl/KeyguardStatusViewManager;->mDateView:Landroid/widget/TextView;

  22. new-instance v2, Ljava/lang/StringBuilder;

  23. invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

  24. iget-object v3, p0, Lcom/android/internal/policy/impl/KeyguardStatusViewManager;->mDateFormatString:Ljava/lang/String;

  25. invoke-static {v3, v0}, Landroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence;

  26. move-result-object v3

  27. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

  28. move-result-object v2

  29. const-string v3, " "

  30. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

  31. move-result-object v2

  32. const/4 v3, 0x5

  33. const/4 v4, 0x0

  34. invoke-static {v3, v4}, Landroid/util/Lunar;->getLunar(IZ)Ljava/lang/String;

  35. move-result-object v3

  36. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

  37. move-result-object v2

  38. invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

  39. move-result-object v2

  40. invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

  41. .line 894
  42. .end local v0 #now:Ljava/util/Date;,
  43. :cond_42
  44. return-void
  45. .end method
复制代码
打包替换
修改framework 将如下代码保存成Lunar.smali文件放到\android\util文件夹下面:
好吧 代码有点长,下载下面那个也行

下载这个

点击打开链接




内容概要:本文档围绕&ldquo;Cursor神操作编程创意赛&rdquo;的参赛流程、项目创意构思方法、代码优化技巧及案例解析进行详细讲解,旨在帮助参赛者快速掌握Cursor编辑器的高效使用方法。文档首先介绍了比赛背景与目标,强调了比赛以&ldquo;创意+高效编码&rdquo;为核心,鼓励借助Cursor的AI辅助功能完成高质量项目。接着阐述了Cursor编辑器的优势,包括AI智能补全、代码重构与优化、跨语言支持等功能。然后分享了创意构思方法,如问题驱动法、技术融合法等。实战开发流程部分涵盖了需求分析、项目初始化、核心功能开发、界面优化、性能与安全优化五个阶段。最后提供了两个具体案例解析,分别是AI智能课堂助手和城市出行优化平台,并总结了比赛冲刺与展示技巧,指出参赛不仅能锻炼技术,还能积累项目经验和人脉资源。; 适合人群:学生、编程爱好者、全栈工程师及创客群体。; 使用场景及目标:①帮助参赛者快速掌握Cursor编辑器的高效使用方法;②通过创新的编程思路在比赛中脱颖而出;③为参赛者提供创意构思方法和实战开发指导。; 阅读建议:此资源详细讲解了参赛流程、创意构思、代码优化及案例解析,读者应结合自身情况,重点关注创意构思和实战开发流程,同时参考案例解析,以更好地理解和应用所学内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值