package Ġcom . ang cy o . library . utils Ċ Ċ import Ġandroid . util . Log Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . FileNotFoundException Ċ import Ġjava . io . FileReader Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ import Ġjava . util . regex . Pattern Ċ Ċ /** Ċ Ġ* Ġhttps :// github . com / s uf adi / Android Cpu Tools Ċ Ġ* ĠEmail : ang cy o @ 1 2 6 . com Ċ Ġ* Ġ@ author Ġang cy o Ċ Ġ* Ġ@ date Ġ 2 0 2 0 - 7 - 1 Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠSh en Z hen ĠO & M ĠCloud ĠCo ., ĠLtd . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ object ĠProc Cpu Info Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠProc Cpu Info :: class . java . simple Name ĊĊĠĠĠ Ġval Ġcpu Info : ĠList < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult : ĠMutable List < String > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġline : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbr Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBufferedReader ( FileReader ("/ proc / cpu info ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( br . readLine (). also Ġ{ Ġline Ġ= Ġit Ġ} Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbr . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠFileNotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( e . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ġ/ proc / cpu info ĊĠĠĠĠĠĠĠ Ġprocessor ĠĠĠĠĠĠ Ġ: Ġ 0 ĊĠĠĠĠĠĠĠ ĠProcessor ĠĠĠĠĠĠ Ġ: ĠA Arch 6 4 ĠProcessor Ġrev Ġ 4 Ġ( aarch 6 4 ) ĊĠĠĠĠĠĠĠ Ġmodel Ġname ĠĠĠĠĠ Ġ: ĠA Arch 6 4 ĠProcessor Ġrev Ġ 4 Ġ( aarch 6 4 ) ĊĠĠĠĠĠĠĠ ĠB ogo M IPS ĠĠĠĠĠĠĠ Ġ: Ġ 2 6 . 0 0 ĊĠĠĠĠĠĠĠ ĠFeatures ĠĠĠĠĠĠĠ Ġ: Ġfp Ġas im d Ġevt strm Ġaes Ġpm ull Ġsha 1 Ġsha 2 Ġcrc 3 2 ĊĠĠĠĠĠĠĠ ĠCPU Ġimplement er Ġ: Ġ 0 x 4 1 ĊĠĠĠĠĠĠĠ ĠCPU Ġarchitecture : Ġ 8 ĊĠĠĠĠĠĠĠ ĠCPU Ġvariant ĠĠĠĠ Ġ: Ġ 0 x 0 ĊĠĠĠĠĠĠĠ ĠCPU Ġpart ĠĠĠĠĠĠĠ Ġ: Ġ 0 xd 0 3 ĊĠĠĠĠĠĠĠ ĠCPU Ġrevision ĠĠĠ Ġ: Ġ 4 ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġget Field From Cpu info ( field : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbr Ġ= ĠBufferedReader ( FileReader ("/ proc / cpu info ")) ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠPattern . compile ("$ field \\ s * :\\ s *( .* )") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġline : ĠString ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( br . readLine (). also Ġ{ Ġline Ġ= Ġit Ġ} Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġp . matcher ( line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m . matches ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm . group ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbr . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ĠCPU Ġ åĲįç§° ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġprocessor : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresult : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġget Field From Cpu info (" Processor ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠD / Cpu Utils : Ġis CPU 6 4 Ġm Processor Ġ= ĠA Arch 6 4 ĠProcessor Ġrev Ġ 4 Ġ( aarch 6 4 ) ĊĠĠĠ Ġval Ġis Cpu 6 4 : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġm Processor : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Processor Ġ= Ġget Field From Cpu info (" Processor ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Processor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠD / Cpu Utils : Ġis CPU 6 4 Ġm Processor Ġ= ĠA Arch 6 4 ĠProcessor Ġrev Ġ 4 Ġ( aarch 6 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d ( TAG , Ġ" is CPU 6 4 Ġm Processor Ġ= Ġ$ m Processor ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Processor . contains (" aarch 6 4 ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġarchitecture : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresult : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġm Cpu Part Ġ= Ġget Field From Cpu info (" CPU Ġpart ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" m Cpu Part Ġ= Ġ$ m Cpu Part ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Cpu Part !!. startsWith (" 0 x ") Ġ|| Ġm Cpu Part . startsWith (" 0 X ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Cpu Part Ġ= Ġm Cpu Part . substring ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Cpu Part Id Ġ= ĠInteger . valueOf ( m Cpu Part , Ġ 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġwhen Ġ( m Cpu Part Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 9 2 0 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠARM 9 2 0 T " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 9 2 6 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠARM 9 2 6 EJ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xB 3 6 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠARM 1 1 3 6 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xB 5 6 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠARM 1 1 5 6 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xB 7 6 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠARM 1 1 7 6 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xC 0 5 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - A 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xC 0 7 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - A 7 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xC 0 8 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - A 8 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xC 0 9 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - A 9 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xC 0 C Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - A 1 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xC 0 F Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - A 1 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xC 0 E Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - A 1 7 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xc 1 4 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - R 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xc 1 5 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - R 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xc 2 0 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - M 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xc 2 1 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - M 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xc 2 3 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - M 3 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xc 2 4 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - M 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xD 0 3 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - A 5 3 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xD 0 7 Ġ-> Ġ" ARM " Ġ+ Ġ" ĠC ortex - A 5 7 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 8 Ġ-> Ġ" N VIDIA " Ġ+ Ġ" ĠTe gra ĠK 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xf Ġ-> Ġ" Qual comm " Ġ+ Ġ" ĠSnap dragon ĠS 1 / S 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 2 d Ġ-> Ġ" Qual comm " Ġ+ Ġ" ĠSnap dragon ĠS 2 / S 3 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 4 d Ġ-> Ġ" Qual comm " Ġ+ Ġ" ĠSnap dragon ĠS 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 F Ġ-> Ġ" Qual comm " Ġ+ Ġ" ĠSnap dragon Ġ 2 0 0 / 4 0 0 / 6 0 0 / 8 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" 0 x " Ġ+ ĠInteger . to HexString ( m Cpu Part Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} Ċ }